【问题标题】:Insert result to table of updating column将结果插入到更新列的表中
【发布时间】:2021-05-27 12:40:58
【问题描述】:

我有这种情况,我正在 postgres 中对 sql 脚本执行更新语句,当我找到匹配的记录时,我想更新内容并保存到其他表,例如 id_user 用于我更新的对象是否可以使用 plpgsql . 您能给我一些建议吗?我应该在 google 上搜索哪些字词?

例如

update User set Status "Active" where any_condition when success insert to UserHistoryTable 

【问题讨论】:

    标签: sql postgresql sql-update


    【解决方案1】:

    在 CTE 内使用带有 RETURNING * 的正常更新,然后从那里将数据插入历史表中:

    WITH j AS (
     UPDATE tbuser SET status = 'Active' 
     WHERE id = 42 
     RETURNING *)
    INSERT INTO user_hist SELECT * FROM j;
    

    演示:db<>fiddle

    如果你想保存更新前的值,我建议你看看triggers

    【讨论】:

      猜你喜欢
      • 2019-02-25
      • 2014-04-29
      • 2012-09-11
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多