十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
有时候我们在测试网站的时候,删除测试数据导致id不是从0开始,那如果想id是从0开始怎么办呢?
创新互联于2013年创立,先为陵川等服务建站,陵川等地企业,进行企业商务咨询服务。为陵川企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
mysql默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会不会从1开始了.
使用mysql时,通常表中会有一个自增的id字段,但当我们想将表中的数据清空重新添加数据时,希望id重新从1开始计数,用以下两种方法均可.
通常的设置自增字段的方法,创建表格时添加:
create table table1(id int auto_increment primary key,...)
创建表格后添加:
alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key.
例子,代码如下:
alter table tablename drop column id;
alter table tablename add id mediumint(8) not null primary key auto_increment first;//phpfensi.com
方法二:alter table tablename auto_increment=0
就我所知这个好像无法实现,就算你自己编译mysql恐怕也很难。因为last_insert_id()这个内置的函数返回最近一次插入的自增长ID,当没有符合条件的ID时,它返回0,所以如果自增长从0开始的话,这个返回值就很难判定到底是插入了一条自增长ID为0的记录还是没有符合条件的记录了。
可以肯定用[0-9]是不行的,应该下面这样:
SELECT * FROM WEB.CLUBUSER WHERE USER REGEXP '^[0-9]'
上面的语句是刚才我查询我网站中数字开头的注册用户,运行成功的。REGEXP是正则表达式语法,无需定界符。
可以用varchar之类的字符串类型去保存
或者是 用int去定义 例:
create table test (id int(10) zerofill);
insert into test values(100);
那么实际存的值就会是 0000000100;
这里的意思就是说,当存入的值位数没有查过10 的时候(int(10)中定义的长度)缺少几位就用0填补上