在sqlite中创建触发器
我需要创建一个触发器,在从表中删除关于制片人的信息之前,制片人将替换prod_id+1上表Films中的prod_id。我当前的代码:在sqlite中创建触发器,sql,database,sqlite,triggers,Sql,Database,Sqlite,Triggers,我需要创建一个触发器,在从表中删除关于制片人的信息之前,制片人将替换prod_id+1上表Films中的prod_id。我当前的代码: CREATE TRIGGER increment_prodid_before_delete BEFORE DELETE ON Producers BEGIN UPDATE Films SET prod_id = prod_id + 1 WHERE prod_id = (SELECT prod_id FROM Producers); END; [
CREATE TRIGGER increment_prodid_before_delete
BEFORE DELETE ON Producers
BEGIN
UPDATE Films SET prod_id = prod_id + 1 WHERE prod_id = (SELECT prod_id FROM Producers);
END;
[这是我的表格的图片]不确定为什么需要这样做,对于您试图解决的任何问题来说,这看起来都不是一个明智的解决方案。但要回答您的问题,这里是如何做到这一点:
CREATE TRIGGER increment_prodid_before_delete
BEFORE DELETE ON Producers for each row
BEGIN
UPDATE Films SET prod_id = prod_id + 1;
END;
子查询:
SELECT prod_id FROM Producers
返回表生产者的所有产品id
您需要的是已删除行的prod\u id
,您可以使用OLD.prod\u id
:
CREATE TRIGGER increment_prodid_before_delete
BEFORE DELETE ON Producers
BEGIN
UPDATE Films
SET prod_id = prod_id + 1
WHERE prod_id = OLD.prod_id;
END;