【问题标题】:MERGE INTO statement in MySQL and PostreSQLMySQL 和 PostgreSQL 中的 MERGE INTO 语句
【发布时间】:2016-11-30 02:59:50
【问题描述】:

我正在使用 HSQLDB 并有一个将数据合并到表中的语句:

MERGE INTO USERS USING (VALUES(null,?,?))" +
"AS VALS(A,B,C) ON USERS.NAME = VALS.B 
 AND USER.EMAIL = VALS.C " +
"WHEN MATCHED THEN UPDATE SET USERS.NAME = VALS.B, 
 USERS.EMAIL = VALS.C " +
"WHEN NOT MATCHED THEN INSERT VALUES VALS.A, VALS.B, VALS.C

如果用户存在,则此语句更新一行,如果不存在,则创建一个新行。

MySQL 和 PostgreSQL 似乎不支持 MERGE INTO

如何在 MySQL 和 PostgreSQL 中不使用MERGE INTO 执行相同的语句?我想拥有唯一的一个声明并具有出色的性能。

【问题讨论】:

标签: mysql sql postgresql hsqldb


【解决方案1】:

如果您的需求与 MERGE for MySQL 等问题有关,您可以尝试使用以下语法:

UPDATE a
INNER JOIN b
  ON a.feild1= b.feild1
SET a.feild2= b.feild2
WHERE a.feild3 = 0;

它适用于 MySQL 5+,我认为它也适用于 MySQL 4+。

The source link of the solution

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2011-09-12
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    相关资源
    最近更新 更多