-1

为什么这个说法不起作用?

CREATE TABLE capacidad (
  cod_capacidad INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  cod_area INTEGER UNSIGNED NOT NULL,
  capacidad VARCHAR(100) NOT NULL,
 PRIMARY KEY(cod_capacidad),
 INDEX capacidad_FKIndex1(cod_area),
 FOREIGN KEY(cod_area)
   REFERENCES AREA(cod_area)
     ON DELETE NO ACTION
     ON UPDATE NO ACTION
   )
 ENGINE=INNODB;
4

2 回答 2

2

为了不出现错误 150:您必须检查以下内容:

  1. 这两个表必须是ENGINE=InnoDB
  2. 这两个表必须具有相同的字符集。
  3. 父表中的 PK 列和 FK 列必须是相同的数据类型。
  4. 父表中的 PK 列和 FK 列,如果它们具有定义排序规则类型,则必须具有相同的排序规则类型;
  5. 如果外键表中已有数据,则 FK 列值必须与父表 PK 列中的值匹配。

希望这可以帮助。

ps:你也应该分享你的另一张桌子。

于 2013-01-09T19:40:57.777 回答
-1

尝试使用CREATE INDEX语法在CREATE TABLE语句之外创建索引:

编辑:我的错,我想到了mssql。

PS。该语句在我的数据库中有效。

于 2013-01-09T19:24:00.067 回答