自动增量在 MySQL 中停止了吗?

Posted

技术标签:

【中文标题】自动增量在 MySQL 中停止了吗?【英文标题】:Auto increment stopped in MySQL? 【发布时间】:2010-09-30 04:17:24 【问题描述】:

我正在编写一个遗憾的是我继承的脚本 - 没有评论或任何东西。啊! 出于测试目的,我复制了数据库中具有自动递增 ID 的表之一。但是,当数据保存到数据库时,ID 号只是读取“0”——这是该列的默认值。我不知道为什么它不再自动增加......有什么想法吗?谢谢!

【问题讨论】:

包含一两个代码示例可能会有所帮助,可能是脚本插入数据的位置。 并转储您复制的测试表的 SQL 创建语句。 【参考方案1】:

您确定将重复表中的字段设置为自动递增吗?尝试运行:

 ALTER TABLE `duplicate_table` CHANGE `ai_key` `ai_key` INT( key_length ) NOT NULL AUTO_INCREMENT  

看看有没有设置。

【讨论】:

【参考方案2】:

您是从头开始创建新表还是将其作为真实副本?如果该列应该自动递增,则它应该是一个主键(或至少是一个唯一键),没有默认值。

【讨论】:

嗯,不幸的是,它设置为“INDEX”,没有设置 auto_increment。而原来的将其设置为 PRIMARY 以及 auto_increment。 (请原谅我的新手,我还在学习 mysql 并且已经被扔进了煎锅!)谢谢 - 我希望调整这些设置可以解决它。 :)【参考方案3】:

只是为了仔细检查,使用 sql 语句显示两个表的 show create table 语法并进行比较。

show create table <table>

【讨论】:

【参考方案4】:

听起来您的专栏实际上不再是auto_increment。这发生在我身上好几次了,因为我用来创建备份的 phpMyAdmin 中有一个错误(?):它不会将 auto_increment 关键字添加到 CREATE TABLE 语句中。 真是让人头疼……

【讨论】:

哦不!我想知道这是否就是这里发生的事情。我很遗憾使用的是旧版本的 phpMyAdmin。你用什么来纠正这个问题?希望您不必重新创建整个表。 只需要遍历每个应该有 AI 字段的表,然后重新添加它们。你可以随时升级你的 phpMyAdmin...

以上是关于自动增量在 MySQL 中停止了吗?的主要内容,如果未能解决你的问题,请参考以下文章

休眠(mysql)刷新与提交中的自动增量

mySQL 数据库:重置自动增量字段

在MYSQL中手动设置具有自动增量的订单号[重复]

MySQL 和自动增量一致性

MySQL中删除后自动增量

如何使用 phpmyadmin 向 mysql 数据库中的列添加自动增量?