2016-05-06 17 views
0

In meiner Tabelle habe ich einen Fremdschlüssel, der auch ein eindeutiger Schlüssel ist. Wie kann ich den eindeutigen Schlüssel entfernen, ohne den Fremdschlüssel zu entfernen?mysql - drop unique constraint

Wenn ich tun:

ALTER TABLE affaire DROP KEY contact_client_id; 

ich bin immer: ERROR 1553 (HY000): Cannot drop index 'contact_client_id': needed in a foreign key constraint

Antwort

0

Ich glaube nicht, dass dies wegen foreign keys must be on indexes möglich ist.

MySQL benötigt Indizes für Fremdschlüssel und referenzierte Schlüssel, so dass Fremdschlüsselprüfungen schnell sein können und keinen Tabellenscan erfordern. In der referenzierenden Tabelle muss ein Index vorhanden sein, in dem die Spalten des Fremdschlüssels als erste Spalten in derselben Reihenfolge aufgelistet sind. Ein solcher Index wird automatisch in der referenzierenden Tabelle erstellt, wenn er nicht existiert . Dieser Index wird möglicherweise später automatisch gelöscht, wenn Sie einen anderen Index erstellen, der zum Erzwingen der Fremdschlüsseleinschränkung verwendet werden kann. index_name, falls angegeben, wird wie zuvor beschrieben verwendet.

+0

vielleicht den eindeutigen Index zum Index ändern? – user1260928

+0

Wenn Sie noch den Fremdschlüssel für "Affaire" benötigen, gibt es eine weitere Spalte, auf die Sie verweisen können? –