[英]How can I create a REGEXP constraint on a column?
我正在尝试对字段“StaffAdress”施加正则表达式约束,使其只能以“street”结尾。
这是我的尝试,但似乎仍然无效。 我尝试了 regexp '.*street$' 和 regexp 'street$' 但都不允许我在表中添加“测试街道”。
CREATE TABLE MsStaff (
`StaffId` CHAR(4) PRIMARY KEY CHECK (`StaffId` regexp 'S[0-9][0-9][0-9]'),
`StaffName` VARCHAR(100) NOT NULL,
`StaffGender` VARCHAR(6) NOT NULL,
`StaffAddress` VARCHAR(100) NOT NULL CHECK ('StaffAddress' regexp '.*street$')
)
我正在使用 10.4.19-MariaDB
我认为您的问题是您正在将文字字符串而不是列与您的正则表达式进行比较。
...CHECK ('StaffAddress' regexp '.*street$')
应该是(不要忘记空格)
...CHECK (StaffAddress regexp '.* street$')
'StaffAddress' regexp '.*street$'
将始终返回 false。 列名必须用反引号引起来,而不是用单引号引起来。
正确的是:
`StaffAddress` VARCHAR(100) NOT NULL CHECK (`StaffAddress` regexp '\w*\ street$')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.