我有2代表与无法删除一个MySQL表由于外键约束
CREATE TABLE projs
(
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
compname VARCHAR (200),
title VARCHAR (200),
imageurl VARCHAR(300),
sumsmall VARCHAR (250),
sumfull VARCHAR (5000),
results VARCHAR (2000),
postdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
caseid MEDIUMINT NULL,
hide TINYINT NOT NULL,
carid MEDIUMINT,
FOREIGN KEY (caseid) REFERENCES cases(id) ON DELETE SET NULL,
FOREIGN KEY (carid) REFERENCES work_carousels(id) ON DELETE SET NULL
)
和
CREATE TABLE cases
(
id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
compname VARCHAR (200),
sumsmall VARCHAR (500),
situation VARCHAR (1000),
imageurl VARCHAR(300),
approach VARCHAR (1000),
deliverables VARCHAR (1000),
results VARCHAR (1000),
conclusion VARCHAR (1000),
postdate DATETIME DEFAULT CURRENT_TIMESTAMP,
carid MEDIUMINT,
FOREIGN KEY (carid) REFERENCES work_carousels(id) ON DELETE SET NULL
)
是有在projs
列引用一个重要组成部分创建列在cases
。我得到的错误:
#1217 - Cannot delete or update a parent row: a foreign key constraint fails
当我尝试
DROP TABLE cases;
,因为我已经在projs
配置列caseid
成为NULL
,如果它是引用被删除,这似乎不可思议。我想手动设置这些值来NULL
:
UPDATE projs SET caseid=NULL;
DROP TABLE cases;
,但得到了同样的错误。
任何想法我做错了什么?