【问题标题】:Validate column using regular expression in postgre SQL在 postgreSQL 中使用正则表达式验证列
【发布时间】:2014-08-15 16:29:01
【问题描述】:

我需要检查表中的列是否具有数字值后跟小数点和小数点后 3 个精度。请建议如何在 postgre SQL(或)任何其他替代方法中使用正则表达式。

谢谢

【问题讨论】:

    标签: regex postgresql


    【解决方案1】:

    数字、句点和数字的基本正则表达式是\d+\.\d{3}

    您可以将它用于多种用途,例如:

    1.为您的列定义添加约束

    ALTER TABLE mytable ADD (CONSTRAINT mycolumn_regexp CHECK (mycolumn ~ $$^\d+\.\d{3}\Z$$));
    

    2。查找不匹配的行

    SELECT * FROM mytable WHERE mycolumn !~ $$^\d+\.\d{3}\Z$$;
    

    3.查找匹配的行

    SELECT * FROM mytable WHERE mycolumn ~ $$^\d+\.\d{3}\Z$$;
    

    【讨论】: