Подтвердить что ты не робот

Mysql получает last_insert_id() в триггере

Я понимаю, что когда вы вызываете last_insert_id(), он идет по соединениям, поэтому вы получите идентификатор последней строки, вставленной в то же соединение, где вызывается last_insert_id(), правильно?

Так что, если я вызову last_insert_id() в триггере "ПОСЛЕ ВСТАВКИ"?

Что я хочу сделать, в основном это

DELIMITER $$
CREATE TRIGGER sometrigger
AFTER INSERT ON sometable
BEGIN
  INSERT INTO anothertable (id, lastup) VALUES (last_insert_id(), NOW());
END $$

Очень важно, чтобы идентификатор в "другой таблице" был таким же, как в "sometable" Будет ли это работать или я должен создать хранимую процедуру, а не вставить в обе таблицы?

Или, возможно, есть в триггере, чтобы получить значения из инструкции insert, вызвавшей срабатывание триггера? Я ничего не нашел об этом.

4b9b3361

Ответ 1

Вы можете использовать NEW.{id column name} для ссылки на последний идентификатор вставки (например, NEW.id, если столбец автоматического увеличения называется id.)