InnoDB MySql错误1215无法添加外键约束/甚至在删除DELETE上的级联义务后

时间:2013-10-04 08:41:44

标签: mysql foreign-keys innodb

我正在尝试将外键添加到我的两个表问题和文件中。 这些是CREATE查询。 并且两个表都已成功创建:

CREATE TABLE lpsolve.tbl_file (
  id INT(11) NOT NULL AUTO_INCREMENT,
  problem_id INT(11) DEFAULT NULL,
  title VARCHAR(255) DEFAULT NULL,
  description VARCHAR(255) DEFAULT NULL,
  type VARCHAR(255) DEFAULT NULL,
  create_time DATETIME DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

CREATE TABLE lpsolve.tbl_probem (
  id INT(11) NOT NULL AUTO_INCREMENT,
  title VARCHAR(255) DEFAULT NULL,
  description VARCHAR(255) DEFAULT NULL,
  create_time DATETIME DEFAULT NULL,
  number_of_files INT(11) DEFAULT NULL,
  PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

但是当我尝试添加以下约束时,我得到错误1215错误。这是添加约束查询:

ALTER TABLE tbl_file
ADD CONSTRAINT fk_problem_file
FOREIGN KEY (problem_id)
REFERENCES tbl_problem(id) 
ON DELETE CASCADE
ON UPDATE RESTRICT

即使删除ON DELETE CASCADEON UPDATE RESTRICT,查询也无效。 Stack Overflow中提到了一些类似的问题但不幸的是它们没有回答我的问题。

错误讯息:

Cannot add foreign key constraint

1 个答案:

答案 0 :(得分:0)

表格名称为tbl_probem

CREATE TABLE lpsolve.tbl_probem (

但是ALTER命令正在尝试引用表:tbl_problem

REFERENCES tbl_problem(id) 

l删除problem以解决此问题。