1

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;
4

0 に答える 0