(errno 150) MySQL Başarısız. Umarım aptalca bir şey yapmıyorumdur. Basit bir test davası yaptım.ancak ben henüz bir çözüm bulamadık, bir yabancı anahtar copnstraint eklemeye çalışırken MySQL errno 150 alma hakkında diğer birçok mesajları okudum
- Her iki tablo InnoDB'nin vardır.
- Her iki tablo da UTF-8'dir.
Her iki sütun (bir fark yapmaz hale color_id(DÜZENLEME: BU HAKKINDA YANILMIŞTIR VE BU ÇÖZÜM WAS) İşteNOT NULL
) int (11) imzasız bulunmaktadır.benim iki tablo vardır:
Tablo widgets
:
CREATE TABLE `widgets` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL DEFAULT '',
`color_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Tablo colors
:
CREATE TABLE `colors` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ben Bu tabloları yeni oluşturdum, içerik yok. Ben colors.id için widgets.color_id bağlamak için bir yabancı anahtar kısıtlamasını eklemeye çalıştığınızda, bu gerçekleşir:
mysql> ALTER TABLE `widgets` ADD FOREIGN KEY (`color_id`) REFERENCES `color` (`id`);
ERROR 1005 (HY000): Can't create table 'production.#sql-7b1_2dd7' (errno: 150)
Sadece seçim benim GUI aracı kullanmak mümkün olmamıştır ekleyeceğiz - OSX de Sequel Pro - ya da. Yabancı anahtar ilişkisi oluşturmaya çalışırken aynı hata mesajını alıyorum.
SHOW ENGINE INNODB STATUS
döner bu:
130531 17:23:06 Error in foreign key constraint of table production/#sql-7b1_2c80:
FOREIGN KEY (`color_id`) REFERENCES `colors` (`id`): Cannot find an index in
the referenced table where the referenced columns appear as the first columns,
or column types in the table and the referenced table do not match for constraint.
ben gülünç aptal mı yapıyorum ??
Tamam, o soru cevaplar - Evet, ben gülünç aptal oldu. Yemin ederim soruyu gönderirken bile "imzasız" ı kontrol ettim, ama belli ki yapmadım. Ne utanç verici. Teşekkür ederim. – Raolin
@Raolin Bu bizim için en iyisi olur. En azından sorunuz iyi yazılmıştı. – Kermit
Şerefe arkadaşları, bana çok yardımcı oldu;) –