我使用触发器来检测在对表执行更新时是否至少有一个值发生了变化。
功能 :
CREATE OR REPLACE FUNCTION update_version_column()
RETURNS trigger AS
$BODY$
BEGIN
IF row(NEW.*) IS DISTINCT FROM row(OLD.*) THEN
NEW.version = now();
RETURN NEW;
ELSE
RETURN OLD;
END IF;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION update_version_column()
OWNER TO gamesplateform;
问题是,当列类型为“json”时,“is distinct”失败(标准行为,在文档中进行了解释)。
我搜索了一种执行相同操作的方法,但是如果列是“json”类型,我想强制接受比较运算符的“jsonb”强制转换。
有没有办法做到这一点 ?
谢谢 !