2015-01-11 81 views
0

我試圖從column _id刪除AUTO_INCREMENT的MySQL數據庫。但是,這種columnprimary key爲表,當我使用這個命令不能alter table來刪除AUTO_INCREMENT由於外鍵

ALTER TABLE Profile 
MODIFY _id INT PRIMARY KEY NOT NULL 

我得到一個錯誤,告訴我,我不能這樣做,因爲有其他表它引用primary key

我的問題是:有沒有辦法解決這個問題?

+1

從其他表中刪除外鍵,更改您的表並重新創建forreign鍵。 – Jens

+4

SET FOREIGN_KEY_CHECKS = 0當你完成時啓用它但是主鍵和自動增量幾乎是同義詞你爲什麼要這樣做? – Mihai

+0

@Mihai:這是一個可能的解決方案,我有這個問題我有 http://stackoverflow.com/questions/27887585/insert-a-specific-id-into-auto-incremented-field-in-mysql-with -entity-framework –

回答

1

可選項:

1.在進行此更改之前刪除關係。

2.在進行此更改之前刪除其他表。

3.Alter關係(表)與像更新/級聯(不知道這是否會幫助)

+0

有沒有辦法在不丟失相關表的數據的情況下刪除關係? –

+1

我最終使用Mihai的解決方案,將外鍵檢查設置爲零,然後在插入想要的值後返回到一個 –

0

最簡單和最快的方式財產以後如下:

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

發現here