postgresql - 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
解决方案
我想你想要
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。
推荐阅读
- travis-ci - Codacy 的 Travis CI 错误(项目令牌未提供且在环境中不可用)
- android - Activity 返回到版本 23 以下时,如何在 Android 中重置 AnimatedVectorDrawable 动画?
- input - 在 Tippy 工具提示中包含输入字段
- java - MyFaces 基础项目无法启动
- sql - SQL - 重用列中唯一值的总和
- javascript - 如何使用 lock v11 从 auth0 无密码获取刷新令牌?
- python - 将命令行参数传递给测试模块
- html - Excel VBA 提取 aria-label 值
- select - Vue.js + Materialize.js 选择输入反应性问题
- r - R 控制台不以正确的形式显示 unicode