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