Cytat(maciekc @ 22.11.2012, 08:54:18 )

Dzieki za odpowiedź.
Kolumna Z jest numerem inwentaryzacyjnym.
Numer ten jest sklejeniem następujących wartości: wartość X- (primary key AUTOINCREMENT), wartość Y-typ obiektu, no i jeszcze data dodania.
Ma to się obliczać z automatu podczas insert'a. No i tu jest problem z tym nieszczęsnym X(AUTOINCREMENT).
Próbowałem to zrobić triggerem after insert tzn. jak już się wstawi do bazy to wtedy wyciągam id za pomocą LAST_INSERTED_ID()
i robie UPDATE dla kolumny Z. Tylko wtedy baza zgłasza błąd:
"Can't update table 'tbl' in stored function/trigger because it is already used by statement which invoked this stored function/trigger"
- rozumien to jako tymczasowe zablokowanie tabelki .
Co z tym cholerstwem zrobić?
Można od obiedy uzyć triggera BEFORE insert i wartość Z obliczyć za pomocą: Z=(Select MAX (X) from tabela +1 )+reszta
tylko czy taka procedura będzie niezawodna- co będzie jak w tym samym czasie dwie osoby będą wstawiać:
To, o czym piszesz, że próbowałeś mogło by przejść pod warunkiem usunięcia wcześniej utworzonego triggera.