如何在SQLite中记录更改(创建、更新、删除)的表字段

qkf9rpyu  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(493)
CREATE TABLE IF NOT EXISTS products(
       id                   INTEGER PRIMARY KEY AUTOINCREMENT,
       name                 TEXT NOT NULL,
       barcode          INTEGER NOT NULL,
       category_id          INTEGER NOT NULL,
       unit_id          INTEGER NOT NULL,
       count            INTEGER NOT NULL DEFAULT 0,
       purchase_price   INTEGER NOT NULL DEFAULT 0,
       extra_charge         INTEGER NOT NULL DEFAULT 0,
       selling_price    INTEGER NOT NULL DEFAULT 0,
       created_at           DATETIME DEFAULT (datetime('now','localtime')),
       update_at            DATETIME DEFAULT (datetime('now','localtime')),
       user_id          INTEGER NOT NULL);

“插入‘Products’(名称,条码,类别_id,单位_id,计数,采购价格,额外费用,销售价格,用户ID)值(?,?,?)”
创建表PRODUCT_CHANGES_LOG(
)

dxxyhpgq

dxxyhpgq1#

对于SQL Server,您可以使用Temporal tables,它将创建products_history表并记录所有DML语句的所有更改。
对于SQLite,您可以使用AFTER INSERT Triggers
如果您需要记录这些更改,还有AFTER UPDATEDELETE

CREATE TRIGGER insert_log AFTER INSERT ON products
BEGIN
INSERT INTO product_changes_log  (column1,column2)

          values (new.column1,new.column2);

END;

相关问题