sql - 正则表达式作为 SQL 模式的一部分

标签 sql regex database schema

假设我有一个关系数据库,除其他外,我想在其中存储员工姓名及其标识字符串。标识字符串的格式被严格定义:它是三个大写字母字符,后跟一个破折号,再后跟一个四位数字。

问题:任何关系数据库都允许定义特定文本字段必须符合的正则表达式吗?就像在我的示例中一样,最好让数据库根据简单的正则表达式检查员工 ID 的所有值,而不是在 UI 级别上执行。

另一个问题:如果我遇到这样的问题(即需要根据一组额外的约束来验证字段值),这是否意味着我的模式已非规范化并且我应该修复它?

最佳答案

是的,您可以使用检查约束来做到这一点。

显然,供应商对此的支持各不相同。有些数据库对正则表达式的支持有限或不支持,有些不支持检查约束。

关于sql - 正则表达式作为 SQL 模式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10506265/

相关文章:

C# 正则表达式.Split : Removing empty results

database - Jdbc批量更新好的key检索策略

php - Laravel : create a helper or a model method to fetch data, 哪个是最佳实践?

当我想在 HTML 中执行 PHP 函数时,PHP 函数不起作用

mysql - 如何显示条件来自另一张表的一张表中的记录?

python - 如何根据某些条件为 spark 数据框中的记录分配等级?

php - Preg_match (yyyy-mm-dd hh :mm:ss) - only this format

mysql - 用等效的 EXISTS() 查询替换 IN() 子查询

sql - 指定默认的 Rails 数据库

php - 获取函数调用的第一个参数的字符串