回答

收藏

在PostgreSQL 9.5上进行MERGE

技术问答 技术问答 370 人阅读 | 0 人回复 | 2023-09-12

我在尝试PostgreSQL 9.5.合并,但出现以下错误:
2 {, _+ _0 w4 D/ A2 D7 GERROR:  syntax error at or near "MERGE"LINE 1: MERGE INTO TP_ESTADO_EQUIPOS AS EQ        ^********** Error **********ERROR: syntax error at or near "MERGE"SQL state: 42601Character: 1SQL/ M" |5 ^* ]7 `6 k: u+ f7 d
MERGE INTO TP_ESTADO_EQUIPOS AS EQUSING (SELECT * FROM TEMP_TABLE_STATE_EQUIPMENT) AS VEQON EQ.ESTADO_EQUIPOS_ID = VEQ.ESTADO_EQUIPO_ID WHEN MATCHED THEN ( EQ.TIEMPO_INICIO=VEQ.TIEMPO_INICIO,EQ.TIEMPO_FIN=VEQ.TIEMPO_FIN,... )WHEN NOT MATCHED THENINSERT(Estado_Equipos_ID,       Tiempo_Inicio,       ...       VALUES(VEQ.ESTADO_EQUIPO_ID,               VEQ.Tiempo_Inicio,               ...);我一直在读文档,可能要用。UPSERT,但我还是不知道一定是错的。
2 E7 W5 z5 B; m$ W                                                                : U% _. B4 v* s- {6 f  Q0 T# e9 D
    解决方案:                                                                $ e6 n* I, n% `# k: n
                                                                Postgres没有MERGE声明:
, C: F* F# N8 U: X/ nhttps://www.postgresql.org/docs/current/static/sql-commands.html
2 F" d; H! ~$ t; A% ~; L; Q使用INSERT ON CONFLICT DO来代替:
9 k7 s9 G/ {& C$ P9 qhttps://www.postgresql.org/docs/current/static/sql-insert.html
$ w5 b! e, V0 f朝MERGER声明的方向迈出了一步,但不一定是你所期望的:
8 O5 d# A* l4 }- P4 c" Ahttps://wiki.postgresql.org/wiki/SQL_MERGE
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则