Rumah > pangkalan data > tutorial mysql > MySQL中的auto_increment的问题

MySQL中的auto_increment的问题

WBOY
Lepaskan: 2016-06-07 17:13:48
asal
997 orang telah melayarinya

MySQL中的auto_increment的问题,InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会

发现一个看似很简单的MySQL问题,却引起了大家的广泛关注:

这是一道很早的面试题:

一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15 。

答案:

如果表的类型是MyISAM,,那么是18。
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。
如果表的类型是InnoDB,那么是15。
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启数据库或者是对表进行OPTIMIZE操作,都会导致最大ID丢失。

自己也做了个实验,结果证实了上面的说法。真是惭愧啊,看似简单的问题自己也打错了。

2,另外还有一个就是获取当前数据库表的自增字段数。

linux

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan