【问题标题】:trigger works but error when creating in Mysql 5.x触发器工作但在 Mysql 5.x 中创建时出错
【发布时间】:2018-07-09 01:39:49
【问题描述】:

phpmyadmin 4.4.15.7 mysql 5.6.37

我的 TRIGGER 已创建,但出现错误

DELIMITER |
CREATE TRIGGER trg_newslistusers AFTER INSERT ON lisc_user_usergroup_map
FOR EACH ROW
BEGIN
INSERT IGNORE INTO lisc_acymailing_listsub
SELECT b.group_id, a.subid,UNIX_TIMESTAMP(), NULL, 1  FROM lisc_acymailing_subscriber a INNER JOIN  lisc_user_usergroup_map b ON a.userid = b.user_id;
END |

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 '|' 附近使用的正确语法在第 6 行

感谢您的帮助

【问题讨论】:

  • 您是从 MySQL 命令行创建触发器吗?
  • 在 mysql 5.6.37 上的 phpmyadmin 4.4.15.7 中没有

标签: mysql triggers


【解决方案1】:

由于触发器主体中只有一条sql语句,因此不需要begin-end,也不需要更改语句分隔符:

CREATE TRIGGER trg_newslistusers AFTER INSERT ON lisc_user_usergroup_map
FOR EACH ROW
INSERT IGNORE INTO lisc_acymailing_listsub
SELECT b.group_id, a.subid,UNIX_TIMESTAMP(), NULL, 1  FROM lisc_acymailing_subscriber a INNER JOIN  lisc_user_usergroup_map b ON a.userid = b.user_id;

【讨论】:

    【解决方案2】:

    我终于这样搞定了

    DELIMITER |
    CREATE TRIGGER trgNewslist AFTER INSERT ON lisc_usergroups
    FOR EACH ROW
    BEGIN
    INSERT INTO lisc_acymailing_list
    SELECT `title`, '', 0, `id`,1, 60, LOWER(REPLACE(`title`, ' ', '' )), '#000000', 1,0,0, 'list', 'all','none', 'all', 0, ''
    FROM lisc_usergroups
    ORDER BY  `id` DESC
    LIMIT 1;
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, 'ß', 'ss');
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, 'ä', 'ae');
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, 'ë', 'e');
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, 'ï', 'ie');
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, 'ö', 'oe');
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, 'ü', 'ue');
    UPDATE lisc_acymailing_list SET `alias`= REPLACE(`alias`, '"', '');
    END;
    

    没有 |在末尾 如果我不放 DELIMITER |最重要的是它不起作用

    我觉得语法很奇怪

    感谢大家

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 2016-01-09
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-27
      相关资源
      最近更新 更多