我有两个表 - topics
和articles
,我正在尝试将一个外键添加到articles.arTopic
(正常索引),这将引用topics.topicId
(AI PRIMARY)键)。
然而,当我尝试在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 ;
答案 0 :(得分:0)
两列之间确实存在差异 - 一列为not null
,另一列为Default null
。差异会给你一个错误。