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脚本。