【问题标题】: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 语句。

我该怎么做?

【问题讨论】:

    标签: sql database postgresql plpgsql


    【解决方案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';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-16
        • 2023-03-14
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        相关资源
        最近更新 更多