为什么这个陈述失败了?

时间:2013-01-09 19:17:30

标签: mysql create-table

为什么这句话不起作用?

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;

2 个答案:

答案 0 :(得分:2)

未收到错误150:您必须检查以下内容:

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

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

答案 1 :(得分:-1)

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

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

PS。该声明适用于我的数据库。