2014-10-03 31 views
0

我在将数据插入到mysql表中时遇到了问题。自动增量跳跃的次数超过插入的行数。按照以下步骤重现该问题。此表格未与其他表格引用。该表格上未创建任何触发器。没有删除查询在表上执行。自动增量跳跃超过插入的行数?

第1步 - 在mysql中创建一个表。

CREATE TABLE IF NOT EXISTS `tbl_hostel_rooms` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `hostel_id` int(11) NOT NULL, 
    `room_no` int(11) NOT NULL, 
    `total_sharing_for_room` tinyint(1) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ; 

第2步 - 在表中插入10行并分析结果。这将插入10行并将AUTO_INCREMENT值设置为11.这也是预期的。

INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '101', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '102', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '103', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '104', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '105', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '106', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '107', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '108', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '109', '3'); 
INSERT INTO `new_db`.`tbl_hostel_rooms` (`id`, `hostel_id`, `room_no`, `total_sharing_for_room`) VALUES (NULL, '1', '110', '3'); 

第3步 - 使用此查询插入10多行并分析结果。

INSERT INTO `tbl_hostel_rooms`(`hostel_id`, `room_no`, `total_sharing_for_room`) select `hostel_id`, `room_no`, `total_sharing_for_room` from tbl_hostel_rooms; 

这将插入10个行和AUTO_INCREMENT值将被设置为26。这不期望。现在只插入一行,AUTO_INCREMENT列ID将从27开始。

此问题的解决方案是什么。

+1

自动增量值用于标识行,但不用于编号行。 – VMai 2014-10-03 10:30:40

回答

0

我认为这是由于,明确提到了“id”列是自动增量字段。尝试从查询中删除此字段。可能会问题解决。