关于这个主题我还有其他一些问题,但我似乎无法弄清楚他们的解决方案如何适用于我的表格。查看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`
alter table代码由于某种原因无效。任何帮助将不胜感激。
错误是:Schema Creation Failed: Can't create table 'db_e342e.#sql-7711_1a4d2' (errno: 150):
使用第三方程序(HeidiSQL)时,错误更加详细:
Foreign key constraint is incorrectly formed
答案 0 :(得分:3)
您正在尝试在MyISAM表上使用外键,这是不允许的(它们仅适用于InnoDB)。看看这里:http://sqlfiddle.com/#!2/64951所有我从原来改变的是表类型(从MyISAM到InnoDB),然后我添加了约束。工作得很好。
完全披露 - 我是SQL Fiddle的作者:)