Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / last_insert_id() / 5 сообщений из 5, страница 1 из 1
11.11.2014, 21:35:33
    #38802814
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
last_insert_id()
Добрый день!
Чей автоинкремент вернет select last_insert_id() при insert-е в табличку, на которой висит триггер на insert в другую таблицу?
Я, конечно, проверил: - возвращает last из первой.
Нету ли тут какой-нибудь засады? И куда девается в таком случае last_insert_id() из второй таблицы?
...
Рейтинг: 0 / 0
11.11.2014, 23:00:10
    #38802851
Алекс М.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
last_insert_id()
miv32, засада может быть в типе триггера. Если он висит на BEFORE INSERT, тогда вполне логично, что он возвращает ID из первой (изменяемой руками) таблицы. Если же он на AFTER INSERT, тогда по идее он должен возвращать ID из второй (изменяемой триггером) таблицы.
Сам не проверял, просто исхожу из общих соображений :)
...
Рейтинг: 0 / 0
11.11.2014, 23:14:26
    #38802859
miv32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
last_insert_id()
Проверил на afte insert - возвращает last из первой таблицы
...
Рейтинг: 0 / 0
11.11.2014, 23:49:39
    #38802875
Алекс М.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
last_insert_id()
miv32, ну тогда остаётся читать мануаль и искать грабли :)
...
Рейтинг: 0 / 0
12.11.2014, 00:22:07
    #38802886
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
last_insert_id()
Алекс М.miv32, засада может быть в типе триггера. Если он висит на BEFORE INSERT, тогда вполне логично, что он возвращает ID из первой (изменяемой руками) таблицы. Если же он на AFTER INSERT, тогда по идее он должен возвращать ID из второй (изменяемой триггером) таблицы.
Сам не проверял, просто исхожу из общих соображений :)

не верная логика. в мускле на этапе тригера бифо, ещо нету автоинкрементного поля!!!

функция ласт_инсерт_айди возвращает последний сгенерированый аутоинкремент! тоесть указывая явно айдишник - мы не изменим это значение.

ласт_инсерт_айди уже доступна на этапе тригеров афтер - всмысле что будет возвращать айди имено токо что вставленой записи, и будет его возвращать пока не произойдёт ещо одна вставка, всеравно каким боком, пусть там хоть будет цепное вызывание тригеров 10 штук...
всегда возвращаеться айди вставленного последним на момент вызова.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / last_insert_id() / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]