【问题标题】:Unable to add primary key/unique key/auto-increment to this column无法向该列添加主键/唯一键/自动增量
【发布时间】:2015-07-21 17:57:00
【问题描述】:
ALTER TABLE `clinic1`.`patients` 
CHANGE COLUMN `Patient_Id` `Patient_Id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '' ,
ADD UNIQUE INDEX `Patient_Id_UNIQUE` (`Patient_Id` ASC)  COMMENT '';

ERROR 1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的“COMMENT”附近使用正确的语法

SQL 语句:

ALTER TABLE `clinic1`.`patients` 
CHANGE COLUMN `Patient_Id` `Patient_Id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '' ,
ADD UNIQUE INDEX `Patient_Id_UNIQUE` (`Patient_Id` ASC)  COMMENT ''

无法向该列添加主键/唯一键/自动增量

每个都试过了

不工作

【问题讨论】:

  • 查看与您的 MySQL 服务器版本相对应的手册以了解正确的语法 - 好吧,你有吗??

标签: mysql primary-key auto-increment unique-key


【解决方案1】:

首先删除现有列上的主键

ALTER TABLE clinic1 MODIFY Patient_Id int(10), drop primary key;

然后修改现有列或新列,使其成为主键

ALTER TABLE test MODIFY Patient_Id int(10) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT comment '', 
ADD UNIQUE INDEX `Patient_Id_UNIQUE` (`Patient_Id` ASC)  COMMENT '';

【讨论】:

    【解决方案2】:

    您的表中只能有 1 个自动增量列,它应该是主键。 确保您的表没有其他主键或自增键,如果确实将其删除,然后重试。

    【讨论】:

    • 谢谢,但就是这样。我只有一个主键和一个自动增量。我认为问题出在cmets上。它们是在工作台中自动生成的。我在没有它们的情况下重新编写了查询并且它有效。但是自动增量仍然没有按预期工作它从感觉就像 N 没有注意到最后输入的值的任何地方开始
    • 自动增量是生成随机值还是从某个点开始?
    • 这是因为在您从表中删除值后,自动增量也不会重置它的索引。例如,如果您删除值 1 和 2,而现在您的表是空的,那么您插入的下一个值将具有值 3 而不是 1。
    • 我知道的唯一方法是删除表并重新创建它,这样自动增量将从 1 开始获取值,然后继续进行。但是如果你从一开始就删除一些记录,同样的问题会再次出现。
    猜你喜欢
    • 2021-12-21
    • 2014-02-10
    • 2018-06-05
    • 2010-10-11
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多