首页 > 解决方案 > postgresql 10 realizar 触发器插入或更新

问题描述

我有 2 个表,一个总线和另一个 bus_tmp,我需要在其中更新或插入,我需要在总线表上进行触发器。两个表具有相同的字符。我是 postgresql 的新手。:( 如果是,我如何创建触发器?执行更新总线没有结果。

更新表总线

UPDATE bus SET (patio_antes, patio_antes) = (SELECT patio_antes, patio_actual FROM bus_tmp
WHERE bus_tmp.interno = bus.interno)

错误 = 错误:对同一列“patio_antes”Estado SQL 的多个分配:42601

在此处输入图像描述

在此处输入图像描述

标签: postgresql

解决方案


我想你想要

UPDATE bus SET (patio_antes, patio_actual) = (SELECT patio_antes, patio_actual FROM bus_tmp
WHERE bus_tmp.interno = bus.interno);

您当前的查询正在尝试一次将露台_antes 设置为 2 个不同的列,因为它包含 SET(露台_antes,露台_antes)相同的列名。

但是,如果给定的 bus.interno 没有匹配的 bus_tmp.interno,那么 bus.patio_antes 和.patio_actual 都将设置为 NULL。


推荐阅读