【问题标题】:How can I check string length before insert in MySQL?如何在插入 MySQL 之前检查字符串长度?
【发布时间】:2013-02-06 11:51:45
【问题描述】:

我在 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. 制作一些正则表达式来检查密码。例如,我希望它同时包含大写和小写字符和数字。

请指导我。 非常感谢。

【问题讨论】:

  • 由于 MySQL 仍然不支持检查约束,因此您需要一个触发器。
  • 为什么要把这个任务交给 MySQL?只需在您的客户端软件中执行此操作即可。
  • @mvp 有时数据库被多个项目使用......不是说这是,但它是一个论点:)
  • 您可以阅读有关如何在 mysql 中创建触发器的正确​​语法...到目前为止您尝试了什么?
  • @mvp:最好在数据库中检查(也)这些东西。对于任何重要的数据库,您通常会得到不止一个应用程序访问它。

标签: mysql string triggers minimum


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 1970-01-01
    • 2012-06-18
    相关资源
    最近更新 更多