使用postgre SQL中的正则表达式验证列

Rob*_*ave 2 regex postgresql

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

谢谢

zx8*_*x81 9

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

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

1.向列定义添加约束

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

2.找到不匹配的行

SELECT * FROM mytable WHERE mycolumn !~ $$^\d+\.\d{3}\Z$$;
Run Code Online (Sandbox Code Playgroud)

3.找到匹配的行

SELECT * FROM mytable WHERE mycolumn ~ $$^\d+\.\d{3}\Z$$;
Run Code Online (Sandbox Code Playgroud)