0

这是BEFORE UPDATE触发器执行的 func 的骨架

CREATE OR REPLACE FUNCTION increment_indexes()
RETURNS trigger AS
$BODY$
BEGIN
  IF -- ???

  END IF;
END;
$BODY$ LANGUAGE plpgsql;

我需要的是确定(使用IF语句)是否NEW.mycolINTEGER而不是一些文字。所以IF条件应该返回true:

UPDATE mytable SET mycol = 11 WHERE mycol = 10

和错误的:

UPDATE mytable SET mycol = mycol + 1 WHERE mycol = 10
4

1 回答 1

0

如果您正在寻找如何确定列值是否为整数,您可以使用此函数,取自archives.postgresql.org

CREATE FUNCTION isnumeric(text) RETURNS boolean AS '
SELECT $1 ~ ''^[0-9]+$''
' LANGUAGE 'sql';

但是我认为你的两次更新会给你同样的结果。

于 2015-01-27T09:05:07.097 回答