在服务器中执行SQL脚本错误:错误1005:无法创建表(错误号:150)

时间:2013-03-07 09:12:35

标签: mysql sql

我在制作桌子时遇到了问题。

问题在于创建了与antoher表的外键/关系。

互联网告诉我检查列类型并检查它是否与我引用的列相同。和它一样。

互联网给我的未来解决方案没有工作所以任何人都可以帮助我吗?

这是查询:

CREATE  TABLE IF NOT EXISTS `finprodb`.`tblproject` (
  `prj_id` INT(11) NOT NULL AUTO_INCREMENT ,
  `prj_nummer` VARCHAR(45) NOT NULL ,
  `prj_omschrijving` TEXT NULL DEFAULT NULL ,
  `prj_verkoop_waarde` DECIMAL(20,4) NULL DEFAULT NULL ,
  `prj_gereed` TINYINT(4) NULL DEFAULT NULL ,
  `prj_bedr_id` INT(11) NOT NULL ,
  PRIMARY KEY (`prj_id`) ,
  UNIQUE INDEX `prj_id_UNIQUE` (`prj_id` ASC) ,
  INDEX `fk_tblproject_tblbedrijf1_idx` (`prj_bedr_id` ASC) ,
  CONSTRAINT `fk_tblproject_tblbedrijf1`
    FOREIGN KEY (`prj_bedr_id` )
    REFERENCES `finprodb`.`tblbedrijf` (`bedr_id` )
    ON DELETE SET NULL
    ON UPDATE CASCADE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci

2 个答案:

答案 0 :(得分:1)

ON DELETE SET NULLprj_bedr_id INT(11) NOT NULL

的搭配不合适

使列可以为空(删除NOT

答案 1 :(得分:0)

我不太了解MYSQL,但在DB2中,除非在父表中引用的列上有唯一索引,否则无法创建关系。 finprodb上是否有唯一索引。tblbedrijfbedr_id)?