我正在尝试将外键添加到我的两个表"问题"和"文件"。这些是创建查询。并且两个表都已成功创建:
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 CASCADE
和ON UPDATE RESTRICT
,查询也不起作用。堆栈溢出中提到了几个类似的问题,但不幸的是,它们没有回答我的问题。
错误信息:
Cannot add foreign key constraint
表名tbl_probem
CREATE TABLE lpsolve.tbl_probem (
但 ALTER 命令正在尝试引用表:tbl_problem
REFERENCES tbl_problem(id)
从problem
中删除l
来解决此问题。