自动增量在 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 中停止了吗?的主要内容,如果未能解决你的问题,请参考以下文章