使用级联删除

时间:2016-08-16 19:32:59

标签: mysql

我正在尝试使用On Cascade Delete.当我从父表Delete from customers where customer_Id=3中删除记录时,子记录仍然存在,我无法弄清楚我错过了什么。我的代码应该如何看待它?

CREATE TABLE IF NOT EXISTS customers /* Parent table */
( 
customer_Id INT NOT NULL AUTO_INCREMENT,
firstName VARCHAR(30),
lastName VARCHAR(30),
userName VARCHAR(30),
password VARCHAR(30),
PRIMARY KEY(customer_Id),
UNIQUE KEY(userName)
)ENGINE=InnoDB;

CREATE TABLE IF NOT EXISTS orders /* Child table */
(
item_Id INT NOT NULL AUTO_INCREMENT,
item_cost DOUBLE,
item_name VARCHAR(30),
customer_Id INT NOT NULL,
userName VARCHAR(30),
PRIMARY KEY(item_Id),

CONSTRAINT First_Foreign_Key1 
FOREIGN KEY fk_customer_id(customer_Id)
REFERENCES customers(customer_Id)
ON UPDATE CASCADE
on DELETE CASCADE,

CONSTRAINT Second_Foreign_Key2 
FOREIGN KEY fk_userName(userName)
REFERENCES customers(userName)
ON UPDATE CASCADE
ON DELETE CASCADE 
)ENGINE=InnoDB; 

1 个答案:

答案 0 :(得分:0)

我设置了foreign_key_checks = 0。外键被禁用。它需要设置为1,然后才能工作。