MySQL删除所有表外键

MySQL删除所有表外键,mysql,foreign-key-relationship,Mysql,Foreign Key Relationship,我需要更改我的表,将表数据类型从bigint修改为int,数据库中总共有200个表,但由于外键限制,我无法更改我的表 我尝试了设置外键检查=0但它不适用于修改数据类型 请告诉我是否有其他方法可以在不影响现有表的情况下修改表。这并不像您想象的那么简单。因为,我假设您要更改的ComColumn是表主键的一部分 以下是MySQL中需要遵循的步骤 将所有FK拖放到表中 更新表上的数据类型 将所有具有FK的表上的数据类型更新为要更改的表 重新创建所有FK 除了上面提到的,没有其他方法可以“欺骗”mys

我需要更改我的表,将表数据类型从
bigint
修改为
int
,数据库中总共有200个表,但由于外键限制,我无法更改我的表

我尝试了
设置外键检查=0但它不适用于修改数据类型


请告诉我是否有其他方法可以在不影响现有表的情况下修改表。

这并不像您想象的那么简单。因为,我假设您要更改的ComColumn是表主键的一部分

以下是MySQL中需要遵循的步骤

  • 将所有FK拖放到表中
  • 更新表上的数据类型
  • 将所有具有FK的表上的数据类型更新为要更改的表
  • 重新创建所有FK
除了上面提到的,没有其他方法可以“欺骗”mysql来更改作为PK/FK一部分的列


MySQL需要PK和FK中的列完全相同的数据类型,否则您将无法重新创建FK。

。。。。。1.你键入了什么命令。2.发生了什么事。3.“不起作用”是什么意思。4.如果您有任何错误,请在此处显示。5.问这样的问题时,是否将所有行都更改为int(因为否则外键将无法保持在位)+1。不知道为什么人们会给你-2+1,因为这是个好问题。还有一个答案——重新创建外键(参见奥古斯托的答案)。所以,所有表都必须手动重构,……或者(可能)以某种方式生成重构SQL脚本。