列更新时的 SQL mariaDB 触发器

Posted

技术标签:

【中文标题】列更新时的 SQL mariaDB 触发器【英文标题】:SQL mariaDB trigger on column update 【发布时间】:2021-12-28 18:29:48 【问题描述】:

我有一个第一个表,其列作为 id、名称和状态,第二个表列作为 id 和状态。

每当第一个表有任何更新时,特定 id 列的状态列,我想将第二个表的列状态值更新为第一个表状态值。

第一个表 id 列 = 第二个表 id 列

【问题讨论】:

听起来像是对指定 ID 的另一个表的简单更新......有什么问题? 能否请您给我实现它的触发细节 【参考方案1】:

这就是您创建此触发器的方式:

CREATE TRIGGER update_status
    AFTER UPDATE
    ON table1
    FOR EACH ROW
BEGIN
    UPDATE table2 
    SET status = NEW.status
    WHERE id = NEW.id;
END

这仅适用于UPDATE。您可能必须创建另一个触发器,从 table1 插入新行到 table2

CREATE TRIGGER insert_status
    AFTER INSERT
    ON table1
    FOR EACH ROW
BEGIN
    INSERT INTO table2 (id, status)
    VALUES (NEW.id, NEW.status);
END

【讨论】:

以上是关于列更新时的 SQL mariaDB 触发器的主要内容,如果未能解决你的问题,请参考以下文章

12. SQL—设计和使用触发机制

SQL 触发器更新视图中的多个列

SQL Server 触发器插入/更新特定列

SQL Server 删除触发器以更新同一表中的多个列

sql server 数据库里设置了当插入数据时,便触发器插入更新时间,但我导入数据时,触发器却没有工作。

更新另一列时自动更新sql列