Trigger
如何使用觸發器將一個表列添加到另一個 id 與 Sqlite 匹配的表列
下面是我的帶有兩個表的 SQLite 數據庫。
import sqlite3 conn=sqlite3.connect('calc.db') conn.execute("""CREATE TABLE IF NOT EXISTS sum (id TEXT UNIQUE, name TEXT, total TEXT )""") conn.execute("""CREATE TABLE IF NOT EXISTS newtable (id TEXT, name TEXT, num TEXT )""") conn.execute("""INSERT INTO sum(id, name, total) \ VALUES('001', 'name1', '')""") conn.execute("""INSERT INTO sum(id, name, total) \ VALUES('002', 'name2', '')""") # conn.execute("""INSERT INTO newtable(id, name, num) \ VALUES('001', 'name1', '1000')""") conn.execute("""INSERT INTO newtable(id, name, num) \ VALUES('002', 'name2', '2000')""") conn.execute("""INSERT INTO newtable(id, name, num) \ VALUES('001', 'name1', '4000')""") conn.commit() conn.close()
Sum table
有unique id
並且newtable
id
不是唯一的。我想執行加法,sum table
在total column
插入時應該從 newtable 列中獲取加法值,如果 id 匹配。鋤頭做。我的專欄是文本類型。如果在 TEXT 類型中不可行,我可以將其更改為整數,但如果可能的話,最好繼續使用 TEXT 類型。怎麼做。
您可以將觸發器添加到您的 python 腳本
CREATE TABLE IF NOT EXISTS sum (id TEXT UNIQUE, name TEXT, total TEXT )
CREATE TABLE IF NOT EXISTS newtable (id TEXT, name TEXT, num TEXT )
INSERT INTO sum(id, name, total) VALUES('001', 'name1', '');
INSERT INTO sum(id, name, total) VALUES('002', 'name2', '');
CREATE TRIGGER sum_after_insert AFTER INSERT ON newtable BEGIN UPDATE sum SET total = total + NEW.num WHERE id = NEW.id; END;
INSERT INTO newtable(id, name, num) VALUES('001', 'name1', '1000');
INSERT INTO newtable(id, name, num) VALUES('002', 'name2', '2000');
INSERT INTO newtable(id, name, num) VALUES('001', 'name1', '4000');
SELECT * FROM sum;
編號 | 姓名 | 全部的 :-- | :---- | :---- 001 | 名稱1 | 5000 002 | 名稱2 | 2000
db<>在這裡擺弄