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

标签 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 ;

我得到的错误都与此类似...... ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '= users.username 附近使用的正确语法 ,B.email = 用户.email D' 在第 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 $$

关于mysql - 使用更新触发器更新另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404805/

相关文章:

database - 使用触发器更新基于另一个表插入的表行?

php - 在带有自动加载器的错误处理程序中使用 MySQLi 扩展类

添加行时出现 PHP 错误

php - 如何使用 CDbMigration 从表中删除键

MYSQL 批量 "INSERT ... ON DUPLICATE KEY UPDATE ..."通过 "LOAD DATA INFILE"

php - 使用PHP在mysql中插入数据时返回最后一个id

javascript - 如何同时触发两个事件: onblur and onclick

google-apps-script - onSelectionChange 在更改选项卡时重新触发自身

php - mysql 触发器的奇怪行为

'' 附近的 MySQL 语法错误