为什么这段代码不起作用?

时间:2015-09-18 00:55:51

标签: mysql

CREATE TABLE  `mydb`.`Height` (
  `Height ID` VARCHAR(45) NOT NULL ,
  `Value` DOUBLE NULL ,
  `Unit` VARCHAR(10) not NULL ,
  `Value in Cms` DOUBLE NULL ,
  PRIMARY KEY (`Height ID`))
;

CREATE TABLE  `mydb`.`HeightUnit` (
    `Unit` VARCHAR(10) NOT NULL ,
    `Size in Cms` DOUBLE NULL ,
    PRIMARY KEY (`Unit`),

    FOREIGN KEY (`Unit`)
        REFERENCES `Height` (`Unit`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)
;

我得到1005无法创建表errno 150 ...

1 个答案:

答案 0 :(得分:0)

引用的列需要有一个索引。

CREATE TABLE  `mydb`.`Height` (
  `Height ID` VARCHAR(45) NOT NULL ,
  `Value` DOUBLE NULL ,
  `Unit` VARCHAR(10) not NULL ,
  `Value in Cms` DOUBLE NULL ,
  PRIMARY KEY (`Height ID`),
  INDEX (`Unit`))
;

通常外键应该引用另一个表的主键。您确定要引用Height列而不是Height ID吗?