我在mysql中创建了两个表,
house表,其中houseID是我的客户表中的外键。
Create customer table(
id int not null primary key auto_increment,
name varchar not null,
houseId int not null,
telephoneNo, int not null,
CONSTRAINT FOREIGN KEY (houseId) REFERENCES house(id) ON DELETE CASCADE);
CREATE house table(id int not null primary key auto_increment,
houseNo int not null,
address varchar not null);
但是,当我删除具有特定houseId的customer时,虽然我在customer表中添加了delete cascade,但是house表中的行不会被删除。知道为什么吗?
答案 0 :(得分:0)
你的外键在错误的桌子上。你设置它的方法是,如果你删除一个房子,相应的cutomer将被级联。
您需要将一个customerId外键放在house表中,并从侧面触发ON DELETE CASCADE
外键。
使用外键时,ON DELETE会询问:如果我引用的外键被删除(cascade,set null,什么都不做)怎么办? 不当此行被删除时该怎么做。