对列密码进行SQL约束

  • 本文关键字:SQL 约束 密码 mysql sql
  • 更新时间 :
  • 英文 :


我是SQL的初学者,我想在我的表"User"上做一些事情。

我想对我的"密码"列进行限制。约束是";密码只能由字母和数字组成,唯一允许的符号是"_"quot;

我不知道如何只允许一个带有check((约束的符号。

我在谷歌上搜索了很多,没有找到解决方案。

我在想这样的事情:

CONSTRAINT TABLE_PASSWORD检查(密码……..(

如注释中所述,实际应用程序不应在DB中存储原始密码。但既然你已经澄清了这是一个学校项目,我希望这能帮助你:

正如您所说,您可以使用CHECK约束。您可能希望将其与REGEXPNOT REGEXP结合使用。

可能类似于:

ALTER TABLE mytable
ADD CONSTRAINT myconstraint CHECK (mycolumn NOT REGEXP '[^A-Z0-9_]')

你可以看到它在这个Fiddle中工作。

一个简单的REGEXP就足够了。以下查询只允许数字、字母和_符号:
CREATE TABLE tablename (
id int ,
`password` varchar(25) CONSTRAINT TABLE_PASSWORD  CHECK (`password` REGEXP '^[a-zA-Z0-9 _]*$') );

https://dbfiddle.uk/X05evHMm

注意。仅将纯文本密码用于测试目的

相关内容

  • 没有找到相关文章

最新更新