-1

我有两个表-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 ;
4

1 回答 1

0

两列之间实际上是有区别的——一列是not null,另一列是Default null。差异会给你一个错误。

于 2013-04-13T22:27:11.937 回答