2017-08-22 17 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データベースをロックして(オフラインにする)、変更を適用すると問題はないでしょうか? –

関連する問題