HSQLDB如果不存在则插入,如果存在则更新

时间:2015-11-29 22:07:05

标签: hsqldb openoffice-base

我的数据库基于HSQLDB(OpenOffice 3.3.0)存在问题。我正在尝试创建SQL命令,该命令将从源表中选择具有指定列的行并将其复制到目标表,请记住,如果目标表中不存在记录,则应该创建它,如果它确实存在,则应该获取更新。请注意,我使用的是非常旧的HSQLDB引擎,它不支持MERGE命令。

感谢。

1 个答案:

答案 0 :(得分:0)

使用旧的HSQLDB 1.8,您需要执行INSERT和UPDATE。

INSERT INTO dest (SELECT * FROM SOURCE WHERE <your condition> EXCEPT (SELECT * FROM source JOIN dest ON source.id = dest.id WHERE <your condition>));

UPDATE dest SET (col1, col2) = (SELECT coln, colm FROM source WHERE source.id = dest.id) WHERE <your condition>