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

Posted

技术标签:

【中文标题】如何使用 plpgsql 检查一个值是不是为整数?【英文标题】:How to check, if a value is an integer with plpgsql?如何使用 plpgsql 检查一个值是否为整数? 【发布时间】:2009-09-09 12:12:38 【问题描述】:

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

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 语句。

我该怎么做?

【问题讨论】:

【参考方案1】:
SELECT  current_setting('myvar.user') ~ '^[0-9]+$'

【讨论】:

【参考方案2】:

取自archives.postgresql.org:

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

【讨论】:

以上是关于如何使用 plpgsql 检查一个值是不是为整数?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 在 Selenium WD 中检查变量的值是不是为整数? [复制]

检查plpgsql中是不是存在变量的最佳实践?

如何检查值是不是在逻辑上是整数?

使用 PHP 检查多个值是不是为整数的最简单方法是啥?

检查双精度值是不是为整数 - Swift

检查整数是不是为 0 并返回布尔值的简短方法