Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中插入之前如何检查字符串长度?_Mysql_String_Triggers_Minimum - Fatal编程技术网

在MySQL中插入之前如何检查字符串长度?

在MySQL中插入之前如何检查字符串长度?,mysql,string,triggers,minimum,Mysql,String,Triggers,Minimum,我用MySQL中的以下语句创建了一个表 CREATE TABLE Users ( UserName VARCHAR(15) NOT NULL PRIMARY KEY, Password VARCHAR(15) NOT NULL, Active Bool DEFAULT TRUE ) 所以我想在这张桌子上做一个2触发器: 检查用户名和密码是否超过4或8个字符。(检查插入新行时字符串的最小长度) 制作一些正则表达式来检查密码。例如,我希望它同时包含大写和小写字符和数字 请引导我。

我用MySQL中的以下语句创建了一个表

CREATE TABLE Users (
   UserName VARCHAR(15) NOT NULL PRIMARY KEY,
   Password VARCHAR(15) NOT NULL,
   Active Bool DEFAULT TRUE
)
所以我想在这张桌子上做一个2触发器:

  • 检查用户名和密码是否超过4或8个字符。(检查插入新行时字符串的最小长度)
  • 制作一些正则表达式来检查密码。例如,我希望它同时包含大写和小写字符和数字
  • 请引导我。
    非常感谢。

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

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


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

    由于MySQL仍然不支持检查约束,因此您需要一个触发器。为什么要将此任务用于MySQL?只需在客户端软件中执行即可。@mvp有时数据库被多个项目使用。。。不是说这是,但这是一个参数:)你可以阅读关于如何在mysql中创建触发器的正确语法。。。到目前为止你都做了些什么?@mvp:在数据库中检查这些东西也是一种很好的做法。对于任何重要的数据库,您通常都会遇到比单个应用程序访问它多得多的问题。