MySQL如何校验字符串仅由英文字母组成并添加表约束?
你可以直接用MySQL的正则匹配运算符REGEXP实现校验,将isEnglish(Name)替换为Name REGEXP '^[a-zA-Z]+$'即可。
完整建表语句如下:
CREATE TABLE Student ( Name varchar(50), CHECK (Name REGEXP '^[a-zA-Z]+$') )
补充说明:
- 正则规则解释:
^匹配字符串开头,$匹配字符串结尾,[a-zA-Z]匹配任意大小写英文字母,+要求字段至少存在1个字符。如果允许Name为空,把+换成*即可。 - 版本兼容性提示:仅MySQL 8.0.16及以上版本会真正生效CHECK约束,更低版本的MySQL会忽略CHECK语法但不会完成校验,这类场景可以改用触发器实现校验逻辑。
内容的提问来源于stack exchange,提问作者Aditya Harikrish
相关产品推荐
相关产品推荐

