1

我在 MySQL 中创建了一个包含以下语句的表。

CREATE TABLE Users (
   UserName VARCHAR(15) NOT NULL PRIMARY KEY,
   Password VARCHAR(15) NOT NULL,
   Active Bool DEFAULT TRUE
)

所以我想在这张桌子上做一个 2 触发器:

  1. 检查用户名和密码是否超过 4 或 8 个字符。(检查插入新行时字符串的最小长度)
  2. 做一些正则表达式来检查密码。例如,我希望它同时包含大写和小写字符和数字。

请指导我。非常感谢。

4

1 回答 1

2

您可以使用存储过程或触发器首先测试数据
MySQL 与其他 RDBMS 不同,不支持 CHECK 约束

存储过程方法更明显,因为它在插入/更新之前进行测试。
触发器对于以后的代码维护可能非常不透明

但是,我更关心数据库中有纯文本密码。您通常使用的盐和哈希值等在哪里?

于 2013-02-21T08:24:17.303 回答