假设我有一个关系数据库,除其他外,我想在其中存储员工姓名及其标识字符串。标识字符串的格式被严格定义:它是三个大写字母字符,后跟一个破折号,再后跟一个四位数字。
问题:任何关系数据库都允许定义特定文本字段必须符合的正则表达式吗?就像在我的示例中一样,最好让数据库根据简单的正则表达式检查员工 ID 的所有值,而不是在 UI 级别上执行。
另一个问题:如果我遇到这样的问题(即需要根据一组额外的约束来验证字段值),这是否意味着我的模式已非规范化并且我应该修复它?
最佳答案
是的,您可以使用检查约束来做到这一点。
显然,供应商对此的支持各不相同。有些数据库对正则表达式的支持有限或不支持,有些不支持检查约束。
关于sql - 正则表达式作为 SQL 模式的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10506265/