![]() |
[MySQL]auto_increment и триггер
Я пишу триггер, который при добавлении записи в одну таблицу, добавляет запись в другую таблицу. При этом используется primary key добавляемого элемента. Проблема в том, что в момент добавления элемента его pk равен нулю. А как получить его реальное значение?
|
делай предварительный запрос на max значение ключа и ++, это на поверхности... IMHO больше никак (если правильно понял)...
|
Kerbit
Покажите код триггера Цитата:
|
На данный момент код триггера и определения таблиц такие:
PHP код:
Цитата:
В будущем этот новый id должен внешним ключем стать для tbl2, может тогда можно как-то проще сделать? |
Kerbit а если запрос на tbl1? (я чего-то не въехал пока :))
|
Цитата:
PHP код:
PS: Я неделю назад начал писать на SQL, может я чего-то не понимаю? |
Kerbit
read this: http://bugs.mysql.com/bug.php?id=12482 and this: http://rh-web-guy.livejournal.com/778.html |
Kerbit
Цитата:
|
Цитата:
XCodeR Если я правильно понял, то это баг и он исправлен в версии 5.0.12. Но у меня 5.0.24a. Как же так получается? |
Kerbit
возможно, глупость скажу. А last_insert_id() использовать не пробовали? P.S. Цитата:
|
Kerbit
Как сказал XCodeR, LAST_INSERT_ID() и попробуйте также CREATE TRIGGER new_tbl1 AFTER INSERT ON tbl1 |
Спасибо всем за ответы. Помогло AFTER INSERT.
LAST_INSERT_ID() не подходит, так как выдает 0 при первой вставке в каждой новой сессии работы с сервером. |
Время: 17:41. |
Время: 17:41.
© OSzone.net 2001-