我在PHP中具有以下SQL代码
$conn->query("INSERT INTO orders (Name,Email,phone) VALUES
('$name','$email','$phone')");
我的数据库表具有ID,名称,电子邮件,电话
插入成功,但id始终设置为2147483647,即最大int(11)
所以我的表中只有一行
ID -------------名称-------电子邮件-------电话
2147483647--John--Smith--John@John.com--04524524
id字段设置为自动递增
不是1或2,而是一直到最大值(2147483647)
即使我使用BIGINT或更改类型mysql也会插入最大ID增量
答案 0 :(得分:2)
您可以使用以下方法重置计数器:
ALTER TABLE tablename AUTO_INCREMENT = 1
对于InnoDB,您不能将auto_increment
值设置为小于或等于当前最高索引。 (引自[ViralPatel] [1]):
请注意,您不能将计数器重置为小于或等于的值 到已经使用过的任何东西。对于MyISAM,如果值较小 等于或等于当前AUTO_INCREMENT中的最大值 列,该值将重置为当前最大值加一。对于 InnoDB,如果该值小于当前的最大值 列,不会发生错误,并且当前序列值不会更改。
如果只是引导数据库,则应该考虑使用以下方法清空表:
TRUNCATE TABLE tablename;
上面的命令还将重置所有自动计数器。
答案 1 :(得分:0)
我重复了表,数据和结构,然后删除了原始表,数据和结构。 然后重命名表以替换,并... 自动插入没问题