2013-02-21 49 views
1

我在MySQL中创建了一个包含以下语句的表。如何在插入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. 使用一些正则表达式来检查密码。例如,我希望它包含大写和小写字符和数字。

请指导我。 非常感谢。

+0

由于MySQL仍然不支持检查约束,因此您需要一个触发器。 – 2013-02-21 08:21:30

+0

为什么你想把这个任务投入到MySQL?只需在您的客户端软件中完成。 – mvp 2013-02-21 08:21:44

+1

@mvp有时数据库被多个项目使用...不是说这是,但它是一个参数:) – 2013-02-21 08:22:25

回答

2

您可以使用存储过程或触发器以测试数据第一
MySQL不支持不像其他RDBMS

CHECK约束存储过程的做法是比较明显的,因为它插入/更新前测试。
触发器对于后面的代码维护来说可能相当不透明

但是,我更关心在数据库中使用纯文本密码。你通常使用的salt和hash在哪里等?

相关问题