如何使用plpgsql检查一个值是否为整数?

12

我在一个触发器中使用了这个函数:

CREATE OR REPLACE FUNCTION xx() RETURNS trigger AS $xx$
    BEGIN   
        INSERT INTO my_log (x, y, z) VALUES (NEW.x, NEW.y, current_setting('myvar.user'));
        RETURN NULL;
    END;
$xx$ LANGUAGE plpgsql;

现在我想检查“myvar.user”是否为有效的整数,如果不是,则执行另一个INSERT语句。

我该怎么做?

2个回答

17
SELECT  current_setting('myvar.user') ~ '^[0-9]+$'

4

摘自archives.postgresql.org

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接