【问题标题】:Trigger syntax error in phpmyadmin version 5.1在 phpmyadmin 5.1 版中触发语法错误
【发布时间】:2014-03-09 07:26:49
【问题描述】:

SQL 查询 -

CREATE TRIGGER `trigger_insert` AFTER INSERT ON `user`
    FOR EACH ROW BEGIN
        INSERT INTO `credentials` (`UserId`,`Password`,`UserType`,`Status`) 
            VALUES (NEW.UserId,NEW.Password,'2',NEW.Status);
    END;
DELIMITER ;

错误 -

#1064 - 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 第 3 行的 '' 附近

需要帮助...在此先感谢 :)..

【问题讨论】:

  • @krishna 它的触发器那么如何定义 NEW?
  • 我认为你是从表中获取值吧?
  • @eggyal 你能帮我解决这个错误吗?当我被删除时,我收到新错误,例如“#1142 - TRIGGER command denied to user 'user'@'localhost' for table 'user'” BEGIN ... END
  • 听起来您的数据库用户没有创建触发器的权限。建议您向数据库管理员申请权限。

标签: php mysql phpmyadmin mysql-error-1064 mysql-5.1


【解决方案1】:

对于您的情况,您可以使用此语句-

CREATE TRIGGER `trigger_insert` AFTER INSERT ON `user`
 FOR EACH ROW
 INSERT INTO `credentials` (`UserId`,`Password`,`UserType`,`Status`) VALUES (NEW.UserId,NEW.Password,'2',NEW.Status);

What is the DELIMITER in MySQL and what it’s used for.

【讨论】:

  • 感谢您的帮助,但现在我遇到了新错误,例如 - “#1142 - TRIGGER command denied to user 'user'@'localhost' for table 'user'”
  • CREATE TRIGGER 需要此权限 - dev.mysql.com/doc/refman/5.6/en/create-trigger.html。您需要授予它,或者从 root 的帐户创建触发器。
【解决方案2】:

我认为的分隔符问题:

DELIMITER $$

CREATE TRIGGER `trigger_insert` AFTER INSERT ON `user`
 FOR EACH ROW BEGIN
 INSERT INTO `credentials` (`UserId`,`Password`,`UserType`,`Status`) VALUES (NEW.UserId,NEW.Password,'2',NEW.Status);
END$$

DELIMITER ;

【讨论】:

  • 已经尝试但出现新错误,例如 - "#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以在 'DELIMITER $$ 附近使用正确的语法"
猜你喜欢
  • 1970-01-01
  • 2014-07-21
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2015-08-16
  • 2011-07-10
相关资源
最近更新 更多