2016-08-16 3 views
0

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; 

답변

0

foreign_key_checks = 0으로 설정했습니다. 외래 키가 비활성화되었습니다. 1로 설정해야 작동합니다.