DROP TABLE IF EXISTS messages;CREATE TABLE messages ( chatId int unsigned NOT NULL auto_increment, toUserName varchar(50) DEFAULT NULL, PRIMARY KEY (`chatId`)) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;这样是不ok的.INSERT INTO messages(chatId,toUserName) VALUES(0,'saf');INSERT INTO messages(chatId,toUserName) VALUES(1,'4653');我添加这两条数据的话,第一个还是从1开始,插入这样的数据以后,数据库里就显示:2-saf,1-4653了.
就我所知这个好像无法实现,就算你自己编译mysql恐怕也很难。因为last_insert_id()这个内置的函数返回最近一次插入的自增长ID,当没有符合条件的ID时,它返回0,所以如果自增长从0开始的话,这个返回值就很难判定到底是插入了一条自增长ID为0的记录还是没有符合条件的记录了。
第一条为0的只能手工操作,在命令上输入:SET sql_mode='NO_AUTO_VALUE_ON_ZERO'如下:mysql> SET sql_mode='NO_AUTO_VALUE_ON_ZERO';Query OK, 0 rows affected (0.00 sec)mysql> insert app_config(id, name) values(0, 'ttt');
有时候我们在测试网站的时候,删除测试数据导致id不是从0开始,那如果想id是从0开始怎么办呢?mysql默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会不会从1开始了.使用mysql时,通常表中会有一个自增的id字段,但当我们想将表中的数据清空重新添加数据时,希望id重新从1开始计数,用以下两种方法均可.通常的设置自增字段的方法,创建表格时添加:create table table1(id int auto_increment primary key,...)