我是SQL的初学者,我想在我的表"User"上做一些事情。
我想对我的"密码"列进行限制。约束是";密码只能由字母和数字组成,唯一允许的符号是"_"quot;
我不知道如何只允许一个带有check((约束的符号。
我在谷歌上搜索了很多,没有找到解决方案。
我在想这样的事情:
CONSTRAINT TABLE_PASSWORD检查(密码……..(
如注释中所述,实际应用程序不应在DB中存储原始密码。但既然你已经澄清了这是一个学校项目,我希望这能帮助你:
正如您所说,您可以使用CHECK
约束。您可能希望将其与REGEXP
或NOT REGEXP
结合使用。
可能类似于:
ALTER TABLE mytable
ADD CONSTRAINT myconstraint CHECK (mycolumn NOT REGEXP '[^A-Z0-9_]')
你可以看到它在这个Fiddle中工作。
_
符号:
CREATE TABLE tablename (
id int ,
`password` varchar(25) CONSTRAINT TABLE_PASSWORD CHECK (`password` REGEXP '^[a-zA-Z0-9 _]*$') );
https://dbfiddle.uk/X05evHMm
注意。仅将纯文本密码用于测试目的