触发以自动将元组添加到关系
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;
我正在尝试在 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;