触发以自动将元组添加到关系

Trigger to automatically add tuples to relation

我正在尝试在 SQLITE 上创建一个触发器,以便在将某些内容添加到某个 table 时自动将元组添加到另一个 table,但首先,我想检查我是否m 添加属于另一个三分之一 table。

这是我的触发器:

DROP TRIGGER IF EXISTS atualizaBibliotecas;

CREATE TRIGGER atualizaBibliotecas
AFTER INSERT ON FoiComprado
FOR EACH ROW
BEGIN
    SELECT CASE 
    WHEN 
    (
        SELECT count(*)
        FROM Album 
        WHERE idItem = NEW.idItem
    ) <> 0
    THEN INSERT INTO Possui(idItem, email, dataAquisicao) VALUES(11,'aaaa@bbbb.com', '2019-05-14');
END;

这是我收到的错误:

Error: near line 8: near "INSERT": syntax error

第 8 行:

CREATE TRIGGER atualizaBibliotecas

SQLite 在其触发器中不支持 control-flow 逻辑。您可以将其表示为条件 insert:

INSERT INTO Possui (idItem, email, dataAquisicao)  
   SELECT 11, 'aaaa@bbbb.com', '2019-05-14'
   WHERE NOT EXISTS (SELECT 1 FROM Album a WHERE a.idItem =  NEW.idItem);

我对您对插入内容进行硬编码 11 感到惊讶。我希望 NEW.idITEM.

我相信你想要:-

CREATE TRIGGER atualizaBibliotecas
AFTER INSERT ON FoiComprado
FOR EACH ROW
   WHEN 
    (
        SELECT count(*)
        FROM Album 
        WHERE idItem = NEW.idItem
    ) <> 0
    BEGIN
    INSERT INTO Possui(idItem, email, dataAquisicao) VALUES(11,'aaaa@bbbb.com', '2019-05-14');
END;