1

我已经解决了关于这个主题的其他几个问题,但我似乎无法弄清楚他们的解决方案如何应用于我的表格。查看sqlfiddle。您可以看到它很好地构建了架构。

基本上,一个表是联系人/人员表。第二张表是国家表。我正在尝试在contacts.country_id和之间创建外键引用countries.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`

更改表代码由于某种原因无法正常工作。任何帮助,将不胜感激。

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

Foreign key constraint is incorrectly formed

4

1 回答 1

4

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

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

于 2012-06-19T04:42:53.967 回答