【发布时间】:2017-05-22 12:02:19
【问题描述】:
假设我们有一张这样的表:
CREATE TABLE example (
animal VARCHAR NOT NULL,
color VARCHAR NOT NULL,
name VARCHAR,
UNIQUE(colA, colB))
然后我们执行如下命令:
INSERT OR REPLACE INTO example (animal, color, name)
VALUES ("animal", "cat", "mittens")
有没有办法判断整行的值是否发生了变化?例如,如果在此命令之前,表有以下行:
animal = "cat", color = "orange", name = NULL
它会改变,因为name 改变了。
但如果命令之前的行已经是:
animal = "cat", color = "orange", name = "mittens"
那么就没有变化了。
遗憾的是,changes() 函数似乎在这两种情况下都返回 1。是否有一些东西表明某些值实际发生了变化,或者哪些列发生了变化?
【问题讨论】:
-
您需要编写一个触发器来为每个表计算此信息。