Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 在PhpMyAdmin中创建触发器会导致语法错误_Mysql_Database_Database Trigger - Fatal编程技术网

Mysql 在PhpMyAdmin中创建触发器会导致语法错误

Mysql 在PhpMyAdmin中创建触发器会导致语法错误,mysql,database,database-trigger,Mysql,Database,Database Trigger,我试图创建一个触发器,在验证布尔字段后插入到表中。这是我的密码: DROP TRIGGER IF EXISTS user_au_trg; DELIMITER $$ CREATE OR REPLACE TRIGGER user_au_trg AFTER UPDATE ON users FOR EACH ROW BEGIN IF NEW.UserNameVerified = '1' INSERT INTO changeLog(logId,userId,logD

我试图创建一个触发器,在验证布尔字段后插入到表中。这是我的密码:

    DROP TRIGGER IF EXISTS user_au_trg;

DELIMITER $$
CREATE OR REPLACE TRIGGER user_au_trg
  AFTER UPDATE ON users
  FOR EACH ROW
  BEGIN
    IF NEW.UserNameVerified = '1'
     INSERT INTO changeLog(logId,userId,logDate, theLog) VALUES (null, new.UserId, NOW(), 'User Has Now Been Verified')
     END IF
  END $$
DELIMITER ;
每当我尝试运行此操作时,都会出现语法错误:

1064-您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,了解在第6行的“插入到变更日志(logId、userId、logDate、theLog)值(null、new.userId、NO)”附近使用的正确语法


我做错了什么导致了这个错误?

我会做一些调整,其中一些只是个人偏好。代码发布在下面。但是主要问题是:

  • 格式不正确的IF语句需要-

    如果[Expression],则[IF TRUE]否则[IF FALSE]

  • Insert语句后和结束后缺少终止符 IF语句

  • DROP TRIGGER(如果存在)用户\u au\u trg;
    分隔符;;
    创建或替换触发器用户\u au\u trg
    用户更新后
    每行
    开始
    如果NEW.UserNameVerified='1',则
    在changeLog(logId、userId、logDate、theLog)中插入值(null、new.userId、NOW()、‘用户已验证’);
    如果结束;
    完;;;
    定界符;
    

    希望这有帮助

    你是说我的对账单有错误吗?如果有,你能发布错误吗?如果没有,你能突出你不理解的部分,我会加强我的回答以澄清这一点。谢谢谢谢谢谢,我一开始没有看到更改。谢谢,成功了使用2分号和美元符号有什么区别没有不同的是,这只是个人喜好。