Mysql SQL检查约束使值仅允许部分数字,其他部分仅允许字母

Mysql SQL检查约束使值仅允许部分数字,其他部分仅允许字母,mysql,sql,sql-server,Mysql,Sql,Sql Server,我一直在寻找这个问题的答案,但还没有找到一个例子来帮助我解决如何实现它 我正在创建一个表,我希望在MS SQL server中有一个CHAR(5)数据类型的列,但我希望它只允许前2个字符有一个字母,后面3个字符仅为数字。我见过“CHECK(UnitCode不像“[^A-Z0-9]]”这样的东西,它只限于字母和数字,但不强制只允许哪些字符可以或不能是数字或字母 如果有人能给我指出正确的方向,我会非常感激。谢谢。其中的列类似于“[A-Z][A-Z][0-9][0-9][0-9]” 假设“字母”实际上

我一直在寻找这个问题的答案,但还没有找到一个例子来帮助我解决如何实现它

我正在创建一个表,我希望在MS SQL server中有一个CHAR(5)数据类型的列,但我希望它只允许前2个字符有一个字母,后面3个字符仅为数字。我见过“CHECK(UnitCode不像“[^A-Z0-9]]”这样的东西,它只限于字母和数字,但不强制只允许哪些字符可以或不能是数字或字母


如果有人能给我指出正确的方向,我会非常感激。谢谢。

其中的列类似于“[A-Z][A-Z][0-9][0-9][0-9]”


假设“字母”实际上是a-Z而不是其他字符(例如重音字符或非欧洲字符)。

其中列类似“[a-Z][a-Z][0-9][0-9][0-9]”


假设“字母”实际上是a-Z而不是其他字符(例如重音字符或非欧洲字符)。

创建表格时,应指定约束检查:

使用_数据创建表_(数据_到_检查字符(5)), 约束数据\u格式\u chk检查((子字符串(数据\u到\u检查从1到2)如 “[a-zA-Z]”和(CAST(子字符串(数据从3到3的检查)为 签署)在0和999)之间)


创建表时,应指定约束检查:

使用_数据创建表_(数据_到_检查字符(5)), 约束数据\u格式\u chk检查((子字符串(数据\u到\u检查从1到2)如 “[a-zA-Z]”和(CAST(子字符串(数据从3到3的检查)为 签署)在0和999)之间)


您的问题是MS SQL,但标记为(正确的)和。这是哪一个?只是要小心-你确定你没有在这个列中编码一些不会更好地存储为单独的列(然后,可选地,在计算列中重新组合/格式化)的内容吗?你的问题是MS SQL,但同时被标记(这是正确的)和。这是哪一个?只是要小心-你确定你没有在这个列中编码一些不能更好地存储为单独列(然后,可选地,在计算列中重新组合/格式化)的内容吗?啊,这是有道理的,没有想到这一点。谢谢你的快速回复。谢谢。啊,这很有道理,我没想到。谢谢你的快速回复。谢谢。