2017-08-22 79 views
0

所以我試圖運行這個命令:MySQL的 - 改變修改表列不能刪除行

ALTER TABLE user MODIFY COLUMN email VARCHAR(100) UNIQUE; 

,但它給了我這個錯誤,

Cannot delete rows from table which is parent in a foreign key constraint 'draft_map_ibfk_1' of table 'draft_map' 

有沒有重複的表,所以它不應該刪除任何東西。電子郵件欄目目前是TEXT,那麼是什麼原因導致了這個問題呢?

+0

您必須依賴於該行的外鍵。 – jhpratt

+0

@jhpratt是的我知道,但我沒有刪除任何東西,'ALTER TABLE'是否刪除了東西並重新創建它? –

+0

哎呀,誤解了原來的查詢。 'ALTER TABLE'單獨重新創建每一行,所以從某種意義上講,它會刪除它(雖然是暫時的)。 – jhpratt

回答

1

臨時禁止外國哎檢查:

SET foreign_key_checks = 0; 

爲了能夠回用:

SET foreign_key_checks = 1; 
+0

然後誠信會被破壞? –

+0

@RickJames如果我要鎖定數據庫/(脫機)並應用更改,應該沒問題吧? –