2011-04-22 91 views
1

我有这个mysql代码,但是当我删除agrupamento的一个元素时,这个孩子并没有在emprego中被删除,而是应该的。外键问题 - mysql

例如我在agrupamento - id - 1 || area - science

和我有profissao(作业)- ref - 1 || empregoid - 1 || emprego - scientist

CREATE TABLE agrupamento ( 
     id smallint(5) unsigned NOT NULL auto_increment, 
     area varchar(30), 
     PRIMARY KEY (id) 
    ) 

CREATE TABLE emprego ( 
    ref int(10) unsigned NOT NULL auto_increment, 
    empregoid smallint(5) unsigned NOT NULL, 
    emprego varchar(50), 
    PRIMARY KEY (ref) 
) 

    ALTER TABLE emprego 
    ADD CONSTRAINT FK_emprego 
    FOREIGN KEY (empregoid) REFERENCES agrupamento(id) 
    ON UPDATE CASCADE 
    ON DELETE CASCADE; 

是什么问题?

(如果该区域科学并不存在,科学家也没有。)

的感谢!

+1

什么是您在数据库中使用的表的种类,证明该表是innoDB以使用FK。在myIsam表中它将无法正常工作。 – B4NZ41 2011-04-22 02:18:38

+0

你是对的。如果你愿意,我会接受你的回答。谢谢:) – 2011-04-22 02:25:08

+0

谢谢,不客气。 Seja Bem Vindo。 – B4NZ41 2011-04-22 02:34:11

回答

2

什么是您在数据库中使用的表的种类,证明该表是innoDB以使用FK。在myIsam表中它将无法正常工作。