MySQL Workbench'ten yabancı anahtar oluşturma hatası


9

MySQL Workbench şema değişiklikleri benim veritabanı senkronize etmeye çalışıyorum. Yabancı anahtar oluşturmaya çalıştığında aşağıdaki hatayı alıyorum:

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

İşte yürütmeye çalıştığı ifade:

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

Bu hatanın ne anlama geldiğine dair bir fikrin var mı?

Yanıtlar:


11

Başka bir yerde daha önce kullanılmış bir adla kısıtlama eklemeye çalışıyorsanız bu mesajı alırsınız.

Bu gönderiye göre kısıtlamanızı şu şekilde kontrol edebilirsiniz:

Oluşturmaya çalıştığınız tablo bir yabancı anahtar kısıtlaması içeriyorsa ve bu kısıtlama için kendi adınızı verdiyseniz, veritabanında benzersiz olması gerektiğini unutmayın. Bu adın bir yerde kullanılıp kullanılmadığını görmek için bu sorguyu çalıştırın:

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;

Yabancı anahtar bu sorguda görünmedi, ancak masaya baktığımda orada aynı ada sahip bir dizin vardı. MySQL Workbench'teki senkronizasyonda bir hata olduğuna inanıyorum. En son sürümü (5.2.31) indirdim ve sorun gitti.
BenV
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.