J'utilise sqlite3 sur mon projet Rails et je dois créer un déclencheur qui insère automatiquement dans la table quand une autre table de référencement est mis à jour. Par exemple, j'ai 2 tables Répartition et Total des, des schémas pour chaque table sont comme ci-dessous. Répartitiondéclencheur Sqlite3 avec UPSERT
Date TEXT NOT NULL,
Amount DECIMAL NOT NULL
total
Date TEXT NOT NULL,
Daily_Total DECIMAL NOT NULL,
FOREIGN KEY (Date) REFERENCES Breakdown(Date)
Alors, voici ma création de déclenchement.
CREATE TRIGGER update_sum AFTER INSERT ON Breakdown
...> BEGIN
...> INSERT OR REPLACE INTO Total (Date, Daily_Total)
...> VALUES (Breakdown.Date,
...> (SELECT SUM(Amount) FROM Breakdown WHERE Date = Total.Date));
...> END;
Donc, mon idée est quand insérer dans Répartition table **INSERT INTO Breakdown VALUES (Date('now'),19.99);**
puis Total Tableau est mis à jour par l'une ou l'insertion mise à jour.
Cependant, lors de l'insertion dans la table de répartition, je reçois une erreur disant Erreur: pas de colonne: Breakdown.Date
Quelqu'un peut-il me diriger vers le point où je fais mal, s'il vous plaît?
Merci!
Merci beaucoup! C'était exactement ce que je voulais! Mais, puis-je obtenir un peu plus d'explications ou de documentation que je peux lire pourquoi utilisons-nous NEW plutôt que le nom de la table? – Terrence