2014-02-06 65 views
0

我创建MySQL中的两个表,子表没有被删除

  1. 客户
  2. 房子表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,在内部表中的行没有被删除,虽然我在客户表放在删除级联。任何想法为什么?

回答

0

您的外键位于错误的表格中。你建立的方式是,如果你删除了一栋房子,相应的修剪者将被级联。

你会想在客户表中放置一个customerId外键,并且从侧面有ON DELETE CASCADE外键触发。

ON DELETE正在询问外键:如果我所引用的外键被删除(级联,设置为null,什么也不做)? 不是该行被删除时该怎么做。

+0

那么我是否需要将customerID作为外键放在内部表中? – Sne

+0

啊,它现在正在工作!谢谢! – Sne

+0

欢迎来到堆栈溢出。请记住将问题标记为已回答:) – Moak