外键约束不正确

时间:2012-06-19 02:23:44

标签: mysql

关于这个主题我还有其他一些问题,但我似乎无法弄清楚他们的解决方案如何适用于我的表格。查看sqlfiddle。你可以看到它构建架构就好了。

基本上,一张桌子是联系人/人的表格。第二个表是一个国家表。我正在尝试在contacts.country_idcountries.id之间创建外键引用。

现在,将以下内容添加到左侧的面板中:

ALTER TABLE `ultra_contacts`
ADD INDEX `fk_test` (`country_id`),
ADD CONSTRAINT `fk_test` FOREIGN KEY (`country_id`) REFERENCES `ultra_countries` (`id`) ON UPDATE CASCADE ON DELETE CASCADE`

alter table代码由于某种原因无效。任何帮助将不胜感激。

错误是:Schema Creation Failed: Can't create table 'db_e342e.#sql-7711_1a4d2' (errno: 150):使用第三方程序(HeidiSQL)时,错误更加详细:

Foreign key constraint is incorrectly formed

1 个答案:

答案 0 :(得分:3)

您正在尝试在MyISAM表上使用外键,这是不允许的(它们仅适用于InnoDB)。看看这里:http://sqlfiddle.com/#!2/64951所有我从原来改变的是表类型(从MyISAM到InnoDB),然后我添加了约束。工作得很好。

完全披露 - 我是SQL Fiddle的作者:)