1215: Cannot add foreign key constraint
MySQLNe demek?
Tanımlanmak istenen foreign key constraint'i oluşturulamıyor; MySQL constraint'i ekleyemiyor.
Neden olur?
Ana ve referans sütunların veri türü/uzunluk/işaret (signed-unsigned) ya da karakter kümesi/collation uyuşmazlığı, referans edilen sütunda uygun bir index/PRIMARY KEY olmaması, tabloların farklı depolama motoru (biri MyISAM) kullanması veya referans tablonun henüz olmaması.
Nasıl çözülür?
İki tarafın sütun türlerinin BİREBİR aynı olduğundan emin olun (örn. ikisi de INT UNSIGNED). Referans edilen sütunun bir index ile (genelde PRIMARY KEY veya UNIQUE) desteklendiğini doğrulayın. Her iki tablonun da InnoDB olduğundan emin olun. String anahtarlarda aynı charset/collation kullanın. Ayrıntı için: SHOW ENGINE INNODB STATUS (LATEST FOREIGN KEY ERROR).
Aynı motorda diğer kayıtlar
- 2003Can't connect to MySQL server (TCP/IP)
- 2006MySQL server has gone away
- 1114The table is full
- 1451Cannot delete or update a parent row: a foreign key constraint fails
- 1452Cannot add or update a child row: a foreign key constraint fails
- 1366Incorrect string/integer value for column
- 1044Access denied for user to database