MySQL auto_increments始终插入2147483647

时间:2019-01-27 17:51:58

标签: mysql auto-increment

我在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增量

2 个答案:

答案 0 :(得分:2)

您可以使用以下方法重置计数器:

ALTER TABLE tablename AUTO_INCREMENT = 1

对于InnoDB,您不能将auto_increment值设置为小于或等于当前最高索引。 (引自[ViralPatel] [1]):

  

请注意,您不能将计数器重置为小于或等于的值   到已经使用过的任何东西。对于MyISAM,如果值较小   等于或等于当前AUTO_INCREMENT中的最大值   列,该值将重置为当前最大值加一。对于   InnoDB,如果该值小于当前的最大值   列,不会发生错误,并且当前序列值不会更改。

如果只是引导数据库,则应该考虑使用以下方法清空表:

TRUNCATE TABLE tablename;

上面的命令还将重置所有自动计数器。

答案 1 :(得分:0)

我重复了表,数据和结构,然后删除了原始表,数据和结构。 然后重命名表以替换,并... 自动插入没问题