2016-11-01 18 views
4

MySQLで既存のキーを削除することによってUniqueキーを生成する必要があります。私の現在のバージョンは、私は次のクエリを使用して、既存の鍵を落としBookIdが外部キーをある外部キー制約のために既存の一意キーを削除できません

DROP INDEX `uk_bookid_bookname` ON Books;  

のMySQL 5.7です。に必要な:インデックス 'uk_bookid_bookname' を削除できません:

その後、私は、私は次のエラーを得た、

ERROR 1553(HY000)を

ALTER TABLE Books ADD UNIQUE uk_bookid_bookname (BookId, BookName); 

を次のクエリを使用して、新しい一意のキーを追加しました外部キー制約

私は既存のキーを削除して、新しいユニークキーを追加する必要があります。しかし、逆も同様です。

+0

キー別のインデックスを追加するテーブルの上に

ALTER TABLE mytable DROP FOREIGN KEY mytable_ibfk_1 ; 

をインデックスを作成しますか?そうであれば、何が問題なのですか? – Shadow

+0

既存のキーを削除してから新しいキーを追加する必要がありますが、その逆もあります。 – r123

答えて

1

外部キーを削除する必要があります。それは動作しません:MySQLでの外部キーは自動的に、私は従うことができない

+0

次に、一意に追加して既存のものを削除すると、どのように動作しますか? – r123

+0

最初に外部キーを変更します。 ALTER TABLEを使用してテーブルに外部キー制約を追加します。必要なインデックスを最初に作成してください。 –

+0

http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html –

関連する問題