instruction d'insertion conditionnelle dans les déclencheurs sqlite
Sont conditionnelle si/cas/cas où les déclarations pris en charge dans sqlite déclencheurs?
Disons que j'ai la configuration suivante:
CREATE TABLE someTable (id INTEGER PRIMARY KEY, someValue INTEGER);
CREATE TRIGGER update_another_table AFTER INSERT ON someTable
BEGIN
IF(new.someValue==0)
DELETE FROM another_table WHERE (...some condition);
ELSE
IF NOT EXISTS(SELECT anotherValue FROM another_table WHERE anotherValue =new.someValue)
INSERT INTO another_table VALUES(new.someValue, ...);
ELSE
UPDATE another_table SET anotherValue = new.someValue;
END;
Mais il monte une erreur de syntaxe Sqlite error near 'IF': syntax error"
source d'informationauteur Alex Pacurar
Vous devez vous connecter pour publier un commentaire.
C'est une erreur de syntaxe comme le Diagramme de Syntaxe pour SQLite Déclencheurs ne permettent pas de SI les clauses ni CAS LORSQUE les constructions.
Mais vous pouvez obtenir le même effet par la définition de deux ou trois déclencheurs qui utilisent le LORSQUE la condition, voir http://sqlite.org/lang_createtrigger.html
De sorte que vous créez sur la gâchette pour SUPPRIMER votre cas comme celui-ci:
Et que d'ajouter un autre élément déclencheur pour l'INSÉRER et mettre à JOUR le Cas avec les conditions appropriées...