使用更新触发器更新另一个表

let*_*cal 2 mysql triggers

我正在开发的程序的后端设计很差,基本上需要两个不同的表来保存完全相同的信息。我正在尝试编写一个触发器,它将使用刚刚在表 A 中更新的相同信息来更新表 B。哦,这是使用 MYSQL 数据库,我不确定我是否只是有语法错误,或者是否缺少概念,任何帮助将不胜感激......这是我到目前为止所拥有的

DELIMITER $$         
DROP TRIGGER IF EXISTS after_update_A;

CREATE TRIGGER `after_update_A` 

    AFTER UPDATE ON `A`  FOR EACH ROW
    BEGIN
        UPDATE TABLE B
        SET  username = NEW.username
           , password = NEW.password
           , email = NEW.email
        WHERE id = NEW.id
    END

    $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

我得到的错误都与此类似... ERROR 1064 (42000): You have an error in your SQL 语法;检查与您的 MySQL 服务器版本相对应的手册,了解在第 4 行 '= users.username , B.email = users.email D' 附近使用的正确语法

Joh*_*ica 6

您需要用 来关闭触发器内的每条语句;,我的意思是每一条

CREATE TRIGGER `after_update_A` AFTER UPDATE ON `A` FOR EACH ROW
BEGIN
    UPDATE TABLE B
    SET  username = NEW.username
       , password = NEW.password
       , email = NEW.email
    WHERE id = NEW.id;    //<<-----------
END $$
Run Code Online (Sandbox Code Playgroud)