0
我需要将我的表修改表数据类型从bigint
改为int
,总共有200个表在数据库中,但由于外键约束,我无法更改我的表。MySQL DROP所有表外键
我试过SET foreign_key_checks = 0;
但它不适用于修改数据类型。
请告诉我有没有其他的方式来修改表而不影响现有的表。
我需要将我的表修改表数据类型从bigint
改为int
,总共有200个表在数据库中,但由于外键约束,我无法更改我的表。MySQL DROP所有表外键
我试过SET foreign_key_checks = 0;
但它不适用于修改数据类型。
请告诉我有没有其他的方式来修改表而不影响现有的表。
这并不像您想象的那么简单。正如我所假设的那样,你想改变的组合是表的主键的一部分。
因此,这些都是你需要的MySQL遵循
除了我上面提到的,有没有其他的方式来“欺骗”的MySQL更改列,它是一个PK/FK的一部分。
MySQL需要PK和FK中的列完全相同的数据类型,否则您将无法重新创建FK。
..... 1.你输入了什么命令。 2.发生了什么事。 3.“不起作用”是什么意思。 4.如果您有任何错误,请在此处显示。 5.您是否将所有行都更改为int(因为否则不能将外键保留) – Nanne
+1问这样的问题。不知道为什么人们给你-2 – neeraj
+1因为这是一个很好的问题。有一个答案 - 重新创建外键(见奥古斯托的答案)。所以,所有的表都必须手动重构,或者(可能)以某种方式生成重构SQL脚本。 – Devart