2013-03-24 82 views
1

爲了進一步闡明我正在嘗試創建一個trigger,該表檢查sql中某個數字的表。創建一個從表中刪除名稱的觸發器,如果​​它存在於另一個表中

如果它找到所述數字,那麼它將擦除整行。

它使用單獨的名稱表來檢查。

我認爲這可以使用join完成,但沒有運氣。

所以它看起來像這個我想是if(tb1.name = tb2.name) then DELETE row

如果格式設置爲關閉,我很抱歉。

編輯;我使用phpmyadmin所以一些代碼可能會丟失,但這裏是我最近的「嘗試」代碼 它使用INSERT和時間設置爲後 SELECT * FROM航班WHERE不存在(SELECT * FROM no fly list WHERE PassengerId.Id = Passenger.Id) 尚未添加DELETE作爲,但現在的工作有些正在進行

+0

你可以發佈一些代碼,[你試過](http://mattgemmell.com/2008/12/08/what-have-you-tried /)? – 2013-03-24 05:33:08

+0

等等,它會檢查表中某個數字或某一行的表名是否爲數字? – Scotch 2013-03-24 05:40:15

+0

它檢查一個數字。我有幾張表,但乘客1張,航班1張,DoNotFly(DNF)另有1張。我有乘客ID作爲一個號碼,我在航班上有這個號碼,因爲我在DNF有同樣的號碼,但只有少數選擇。我試圖用這個觸發器做的事情是,如果乘客也在DNF中,那麼只能從航班上刪除乘客。因此,它會將他從該航班中刪除,但不會將乘客表或DNF表格刪除 – Viedt 2013-03-24 05:51:49

回答

0

假設flightdnf雙方都passenger_id列唯一標識感興趣的乘客那麼你的觸發可能看起來像這

DELIMITER $$ 
CREATE TRIGGER dnf_insert AFTER INSERT 
ON dnf 
FOR EACH ROW BEGIN 
    DELETE FROM flights WHERE passenger_id = NEW.passenger_id; 
END$$ 
DELIMITER ; 

如果您發佈DDL(科瑞我們可以改進查詢

+0

@Viedt Dit有幫助嗎?你的問題需要更多幫助嗎? – peterm 2013-03-25 01:16:36

相關問題