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

Mysql 使用更新触发器更新另一个表,mysql,triggers,Mysql,Triggers,我正在处理的程序有一个设计糟糕的后端,基本上需要两个不同的表来保存完全相同的信息。我正在尝试编写一个触发器,它将使用刚刚在表a中更新的相同信息更新表B。哦,这是使用MYSQL数据库 我不知道我是否只是有语法错误或如果我丢失了概念,任何帮助都将不胜感激。。。这是我到目前为止所拥有的 DELIMITER $$ DROP TRIGGER IF EXISTS after_update_A; CREATE TRIGGER `after_update_A` AFTER UPD

我正在处理的程序有一个设计糟糕的后端,基本上需要两个不同的表来保存完全相同的信息。我正在尝试编写一个触发器,它将使用刚刚在表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 ;
我得到的错误都与此类似。。。 错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在'=users.username附近使用的正确语法 ,B.email=users.email
在第4行,您需要用
关闭触发器中的每个语句,我的意思是每一个

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 $$
为每行在“A”上更新后创建触发器“after\u update\u A”
开始
更新表B
设置username=NEW.username
,password=NEW.password
,email=NEW.email

其中id=NEW.id// 您需要使用
关闭触发器内的每个语句,我的意思是每一个

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 $$
为每行在“A”上更新后创建触发器“after\u update\u A”
开始
更新表B
设置username=NEW.username
,password=NEW.password
,email=NEW.email

其中id=NEW.id// 我感觉您正在编译.sqlas.sh

触发器是.sql,应该使用

p、 约翰所说的显然也是正确的

p、 s.2现在我看到另一个错误:
在drop和create语句之间需要一个分隔符

我感觉您正在将.sql编译为.sh

触发器是.sql,应该使用

p、 约翰所说的显然也是正确的

p、 s.2现在我看到另一个错误:
在drop和create语句之间需要一个分隔符

谢谢,这可能是问题之一,但不是解决这个问题的方法。在出现错误之前,它还显示“显示所有939可能性?”?(y或n)“,并继续显示所有这些,我不确定它们是什么或显示它们的原因。
显示所有939种可能性?(y或n)
听起来像是unix shell提示符,不像MySQL会说的那样。谢谢,这可能是问题之一,但不是解决这个问题的方法。在出现错误之前,它还显示“显示所有939可能性?”?(y或n)“,并继续显示所有这些,我不确定它们是什么或显示它们的原因。
显示所有939种可能性?(y或n)
听起来像是unix shell提示符,而不像MySQL会说的那样。