【问题标题】:How to update a table using trigger mysql如何使用触发器 mysql 更新表
【发布时间】:2019-07-19 15:00:44
【问题描述】:

我有两张桌子,t1 和 t2。 我正在尝试触发,以便当 t1 获得更新时,我会检查更新的内容是否为 t1.nStatus。

如果 t1.nStatus = 2,我需要为所有等于 t1.nId 的 t2.customer_Id 设置 t2.bEnabled = 1

CREATE OR REPLACE TRIGGER change AFTER UPDATE ON t1
    FOR EACH ROW
BEGIN
    IF NEW.nStatus = 2 THEN
        UPDATE t2 SET bEnabled = 1 WHERE t2.immobile_id = NEW.nId;
    END IF;
END;

我得到的错误:

已执行 1 个查询,0 个成功,1 个错误,0 个警告

查询:更新后 CREATE OR REPLACE 触发 changeStatusImmobile 每行的固定开始 IF NEW.nStatus = 2 然后 UPDATE select...

错误代码:1064 您的 SQL 语法有错误;检查 与您的 MariaDB 服务器版本相对应的手册 在第 5 行的 '' 附近使用的语法

执行时间:0 秒传输时间:0 秒总时间:0.146 秒

你有什么想法吗?

【问题讨论】:

    标签: mysql triggers


    【解决方案1】:

    尝试设置分隔符

    DELIMITER $$
    
    CREATE OR REPLACE TRIGGER change AFTER UPDATE ON t1
        FOR EACH ROW
    BEGIN
        IF NEW.nStatus = 2 THEN
            UPDATE t2 SET bEnabled = 1 WHERE t2.immobile_id = NEW.nId;
        END IF;
    END$$
    
    DELIMITER ;
    

    【讨论】:

    • 知道了:没有执行任何查询。请在 SQL 窗口中输入查询或将光标置于查询内。
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2011-06-21
    • 2022-11-17
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多