我正在尝试了解如何正确使用检查约束,但是当我使用范围时它一直失败;
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)
如你所见。
我想了解它为什么不起作用,如果范围在 mySQL 中不是一个东西(正如我之前读过的,它自己的检查约束不是它的一部分,我正在使用 Ver 8.0 .28 for macos11 on arm64 (MySQL Community Server – GPL) 顺便说一句,如果有任何原因)有没有办法实现以下检查(这是我实际上想要实现的,上面的代码是只是一个例子): ([A-Z][0- 9]{9}) 一个以大写字母开头后跟 9 个数字的字符串。
提前谢谢你!
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容