2011-04-22 59 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表中它將無法正常工作。