2014-10-20 2 views
0

У меня есть две таблицы.Удалить строку после удаления в другой таблице?

Table_A имеет идентификатор студента (PK) и их имя.
Table_B имеет идентификатор студента (ПК) (FK из таблицы_A) и их адрес.

Я хочу создать триггер, который удаляет учащегося с Table_A, если они были удалены с Table_B.

То, что я до сих пор:

DELIMITER // 
    CREATE TRIGGER del_student 
    AFTER DELETE ON Table_B 
    FOR EACH ROW 
    BEGIN 
     DELETE Table_B 
     FROM Table_A, Table_B 
     WHERE Table_A.ID = Table_B.ID; 
    END// 
DELIMITER ; 

В настоящее время это не работает должным образом. Как бы я указал на недавно удаленную строку с Table_B, чтобы удалить правильную строку из Table_A? Спасибо за вашу помощь.

+1

инструкция delete может быть как 'delete from Table_A где ID = old.ID' –

+0

Это работает. Благодарю. – user2837858

+0

Почему триггер, в отличие от каскада, или только один оператор удаления – Strawberry

ответ

0

Кредиты идут в Abhik Chakraborty в комментариях выше.

DELIMITER // 
    CREATE TRIGGER del_student 
    AFTER DELETE ON Table_B 
    FOR EACH ROW 
    BEGIN 
     DELETE FROM Table_A 
     WHERE old.ID = Table_A.ID; 
    END// 
DELIMITER ; 
Смежные вопросы