У меня есть поле BIGINT в качестве автоматического увеличения и первичного ключа в таблице MySQL Innodb, на которой работает MySQL Community Server 5.6.11.
После вызова базовой инструкции INSERT, а затем вызова SELECT LAST_INSERT_ID() мне всегда возвращается 0, даже если инструкция INSERT была успешной.
Любые идеи, почему это может происходить.
ОБНОВЛЕНИЕ: вот мое определение таблицы
CREATE TABLE `Booking` (
`BookingId` bigint(20) NOT NULL AUTO_INCREMENT,
`HotelId` int(11) NOT NULL,
`AgentId` int(11) NOT NULL DEFAULT '0',
`BookedOn` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`LastChangedBy` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`BookingId`)
ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=71 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Вот мой оператор INSERT
INSERT INTO Booking
(
HotelId,
AgentId,
BookedOn,
LastChangedBy
)
VALUES
(
iHotelId,
iAgentId,
NOW(),
0
);
SELECT LAST_INSERT_ID() AS BookingId;
on delete no action on update no action
) - person jcho360   schedule 05.07.2013ON DELETE NO ACTION ON UPDATE NO ACTION
из определения таблицы, это сработает? У меня на 5.5 так. Как узнать, что вставка сработала? - person O. Jones   schedule 05.07.2013ON DELETE NO ACTION ON UPDATE NO ACTION
в вашем DDL работеLAST_INSERT_ID()
? Я прекрасно понимаю, что это не должно вмешиваться. У меня вопрос, не мешает? - person O. Jones   schedule 05.07.2013