grade表和student表插入记录时,主键为什么都不是从1开始增加?
老师你好,在3.3小节中,在执行add()方法前对grade表和student表都做了清空操作,为什么执行后,表中的记录依然不是从1增加呢?
老师你好,在3.3小节中,在执行add()方法前对grade表和student表都做了清空操作,为什么执行后,表中的记录依然不是从1增加呢?
2016-04-26
因为老师只是把这张表里面的数据删除,并没有删除重新创建这张表。
mysql有一个主键自增的属性,但是不同的数据库引擎对此实现的方式不同。但相同的是,假如你插入了3条数据,id自增到3,这时候你把数据全部删除,表仍然保留,那么下次插入,自增值是4. 在某些引擎下,你可以修改自增值的下一次初始值,但是不能用以前用过的值。就是说,以前自增到3了,你必须设置比3大的自增初始值,比如15,那么下一次插入,他将id=15而不是4了。
下面是不同的存储引擎的区别:
1.MyISAM
删除最大编号的记录后,该编号不可重用,可设定和修改初始值。
可使用复合索引在同一个数据表里创建多个相互独立的自增序列。了解:复合索引。
2.InnDB
不可重用编号,不可设置和修改初始值。
不支持在一个数据表里使用复合索引来生成多个互不干扰的序列编号。
举报