Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 自动递增跳转超过插入的行数?_Mysql_Innodb - Fatal编程技术网

Mysql 自动递增跳转超过插入的行数?

Mysql 自动递增跳转超过插入的行数?,mysql,innodb,Mysql,Innodb,我在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,

我在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行,自动增量值将设置为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行,自动增量值将设置为26。这是预料不到的。现在只插入一行,自动增量列id将从27开始。


这个问题的解决方案是什么。

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

自动增量值用于标识行,但不用于对行进行编号。