MySQL Community Server 5.6.11 を実行している MySQL Innodb テーブルの自動インクリメントおよび主キーとして BIGINT フィールドがあります。
基本的な INSERT ステートメントを呼び出してから SELECT LAST_INSERT_ID() を呼び出した後、INSERT ステートメントが成功したにもかかわらず、常に 0 が返されます。
なぜこれが起こっているのか考えてみてください。
更新:これが私のテーブル定義です
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;