【问题标题】:Can't alter table to remove auto_increment due to foreign keys由于外键,无法更改表以删除 auto_increment
【发布时间】:2015-03-09 12:25:33
【问题描述】:

我正在尝试从 MySQL 数据库中的 column _id 中删除 Auto_Increment。但是,column 是表的 primary key,当我使用此命令时

ALTER TABLE Profile
MODIFY _id INT PRIMARY KEY NOT NULL

我收到一条错误消息,告诉我我不能这样做,因为还有其他表引用了 primary key

因此,我的问题是:有没有办法解决这个问题?

【问题讨论】:

标签: mysql


【解决方案1】:

三个选项:

1.在进行此更改之前删除关系。

2.在进行此更改之前删除其他表。

3.Alter relationship(tables) with somthing like on update / cascade(不确定这是否有帮助)

【讨论】:

  • 有没有办法删除关系而不丢失相关表的数据?
  • 我最终使用了 Mihai 的解决方案,将外键检查设置为零,然后在插入所需值后返回一
【解决方案2】:

最简单最快的方法如下:

set foreign_key_checks = 0;
alter table Profile change column _id _id INT NOT NULL;
set foreign_key_checks = 1;

找到here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 2014-04-17
    • 1970-01-01
    相关资源
    最近更新 更多