我正在尝试了解如何正确使用check约束可以正常工作

我正在尝试了解如何正确使用检查约束,但是当我使用范围时它一直失败;

mysql> create table test( code varchar(64), constraint ctr check (code like '[0-9]%')) :
Query OK, 0 rows affected (0.00 sec) 

-- Allow strings that starts with a number, but when i try to insert '5foo' for example:

mysql> insert into test (code) values ('5foo' ) ;

ERROR 3819 (HY000) : Check constraint 'ctr' is violated.

用正常检查约束总是可以正常工作,例如:

mysql> create table test( code varchar(64), constraint ctr check(code like '_foo_bar%'));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into test (code) values ('5foo0barabc');
Query OK, 1 row affected (0.01 sec)

图片[1]-我正在尝试了解如何正确使用check约束可以正常工作-唐朝资源网

如你所见。

我想了解它为什么不起作用,如果范围在 mySQL 中不是一个东西(正如我之前读过的,它自己的检查约束不是它的一部分,我正在使用 Ver 8.0 .28 for macos11 on arm64 (MySQL Community Server – GPL) 顺便说一句,如果有任何原因)有没有办法实现以下检查(这是我实际上想要实现的,上面的代码是只是一个例子): ([A-Z][0- 9]{9}) 一个以大写字母开头后跟 9 个数字的字符串。

提前谢谢你!

© 版权声明
THE END
喜欢就支持一下吧
点赞212 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片