这是由BEFORE UPDATE
触发器
CREATE OR REPLACE FUNCTION increment_indexes()
RETURNS trigger AS
$BODY$
BEGIN
IF -- ???
END IF;
END;
$BODY$ LANGUAGE plpgsql;
如果IF
是NEW.mycol
而不是某些字面值,我需要确定(使用INTEGER
语句)。所以IF
条件应该返回true:
UPDATE mytable SET mycol = 11 WHERE mycol = 10
和false表示:
UPDATE mytable SET mycol = mycol + 1 WHERE mycol = 10
答案 0 :(得分:0)
如果您正在寻找如何确定列值是否为整数,您可以使用此函数,取自archives.postgresql.org
CREATE FUNCTION isnumeric(text) RETURNS boolean AS '
SELECT $1 ~ ''^[0-9]+$''
' LANGUAGE 'sql';
但是你的两次更新会给你我想的相同结果。