我在mysql中建了一个数据库,然后在这个数据库中建了一个表,表中每一个记录有一个id字段,属性设为了auto_increment,然后用PHP操作数据库。
当我插入了若干个记录后,假如id到了10,然后我把这10个记录都删除(表还在,只是空了),然后,如果我再新插入一个记录,那么它的id从11开始,没问题,但是,如果在删除了那10个记录(表空了)后,我关机重启了,重启后再插入新的记录,id号又从1开始了...郁闷!按理说id号不应该是每个记录都唯一、不重复的吗?纠结...哪位高手懂啊,教教我吧!
当我插入了若干个记录后,假如id到了10,然后我把这10个记录都删除(表还在,只是空了),然后,如果我再新插入一个记录,那么它的id从11开始,没问题,但是,如果在删除了那10个记录(表空了)后,我关机重启了,重启后再插入新的记录,id号又从1开始了...郁闷!按理说id号不应该是每个记录都唯一、不重复的吗?纠结...哪位高手懂啊,教教我吧!
解决方案 »
- excel 表格如何导入到myqsql 数据库中 请求源码事例
- 在html中有的空格数据库中会怎么显示?
- 在5分钟前到现在这个时间点 增量数据的sql脚本该如何写?
- 一个经典的数据库设计题,大家一起来讨论,相信都会受益匪浅。
- 请教join 语法的问题
- 哎,PostgreSql(windows)的数据库效率太不高了!
- 请问各位:谁提供一下maxdb的安装详细步凑以及在php中如何使用的方法
- 如何不让mysql每次开机时自动启动?
- mybatis框架中 mysql函数replace问题,高手指导
- mybatis返回值
- 向mysql数据库插入数据异常
- php+mysql中读取一个表的数据后写入别一个表报字符格式出错
你用的什么存储引擎?贴出你的 show create table xxx;
使用myisam就不会这样!
InnoDB uses the following algorithm to initialize the auto-increment counter for a table t that contains an AUTO_INCREMENT column named ai_col: After a server startup, for the first insert into a table t, InnoDB executes the equivalent of this statement:
SELECT MAX(ai_col) FROM t FOR UPDATE;
InnoDB increments by one the value retrieved by the statement and assigns it to the column and to the auto-increment counter for the table. If the table is empty, InnoDB uses the value 1.