2013-03-24 72 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

相关问题