Frage

Ich versuche, Schemaänderungen von MySQL Workbench in meine Datenbank zu synchronisieren. Ich erhalte den folgenden Fehler, wenn es versucht, einen fremden Schlüssel zu erstellen:

Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)

Hier ist die Aussage, die es ausführen versucht:

ALTER TABLE `tomato`.`ing_allergy_ingredient` 
ADD CONSTRAINT `fk_ai_allergy`
FOREIGN KEY (`allergy_id` )
REFERENCES `tomato`.`ing_allergy` (`allergy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION

Irgendwelche Ideen, was dieser Fehler bedeutet?

War es hilfreich?

Lösung

Sie erhalten diese Nachricht, wenn Sie versuchen, eine Einschränkung mit einem Namen hinzuzufügen, der bereits woanders verwendet wird.

Demzufolge Post Sie können Ihre Einschränkung wie diese überprüfen:

Wenn die Tabelle, die Sie erstellen möchten, eine fremde Schlüsselbeschränkung enthält und Sie Ihren eigenen Namen für diese Einschränkung angegeben haben, denken Sie daran, dass sie in der Datenbank eindeutig sein muss. Führen Sie diese Abfrage aus, um festzustellen, ob dieser Name irgendwo verwendet wird:

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit dba.stackexchange
scroll top