【发布时间】:2013-04-13 21:49:17
【问题描述】:
我有两个表 - topics 和 articles,我正在尝试向 articles.arTopic(普通索引)添加一个外键,它将引用 topics.topicId(A-I 主键)。
但是,当我尝试在 phpMyAdmin 中执行此操作时,我收到一个错误,但没有任何错误代码(它只是说“错误”)。两个表都是 InnoDB 并且它们目前是空的(当它们填充相同的结果时尝试过),两个列都是 int(11) 无符号的。 SHOW ENGINE INNODB STATUS 没有显示任何有用的信息,LATEST FOREIGN KEY ERROR 部分的记录与此问题无关。
我已经为此苦苦挣扎了两个小时,除非我明显遗漏了什么,否则我不知道可能出了什么问题。有人可以帮忙吗?
提前致谢。
为 SQL 编辑:
CREATE TABLE IF NOT EXISTS `articles` (
`arId` int(11) NOT NULL AUTO_INCREMENT,
`arText` longtext COLLATE utf8_czech_ci NOT NULL,
`arTopic` int(255) unsigned DEFAULT NULL,
PRIMARY KEY (`arId`),
KEY `arTopic` (`arTopic`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci ROW_FORMAT=COMPACT AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `topics` (
`topicId` int(255) unsigned NOT NULL AUTO_INCREMENT,
`topicName` text COLLATE utf8_czech_ci NOT NULL,
PRIMARY KEY (`topicId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=1 ;
【问题讨论】:
-
你能告诉我们用于创建表的 SQL 吗?
-
我会的,一旦我弄清楚如何使其格式正确......对不起,我是新手。
-
嘿,你确定没有更多的错误吗?也许页面有问题并且错误消息被切断了?另外,您是否尝试过使用其他浏览器只是为了好玩?
-
不幸的是,情况并非如此,我什至尝试将 MyAdmin 切换到另一种语言,以查看它是否不仅仅是未翻译的错误消息。顺便说一句,我现在已将我的 SQL 添加到问题中。
-
我在这些语句中看不到外键声明。进一步,当您尝试使用外键实现它们时,系统会报告什么?
标签: mysql phpmyadmin foreign-keys