我正在使用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
的情况下执行相同的语句?我希望得到唯一的陈述并且表现出色。
答案 0 :(得分:0)
如果您的必需品与某些问题相关联,例如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+。