Db2:如何插入新数据和更新现有数据?

Db2: How to insert new and update existing data?

我正在使用IBM Db2 数据库系统。我有一个包含 3 列(1 个主键和其他列)的 table,我在从 CSV 文件读取后填写这些列。有时我会从我的文件中得到重复的数据,所以在这种情况下我需要忽略它。

我的问题是找不到正确的 Db2 SQL 语句来执行插入或更新。使用我当前的解决方案,我的代码出现异常:

DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=1;DB2INST1.TI_APGROUP_0, DRIVER=4.12.55

INSERTUPDATE的简单方法吗?

Db2 中的 IMPORT 命令有一个 INSERT_UPDATE 选项。您可以在此处阅读有关 IMPORT command.

的信息

如果您的数据已经在数据库中,请考虑使用 MERGE 语句。

两者都在其上下文中根据某些规则插入新数据和更新现有数据。

我找到了一个可以满足我要求的解决方案,但我不知道它是否是最好的方法!无论如何,我 post 它是为了帮助那些面临同样问题的人,但如果有人有其他建议,欢迎 :

MERGE INTO KDDBD01.KDTCTCT AS CT USING (SELECT COUNT(ADR_MAIL_UTIL) FROM KDDBD01.KDTCTCT) ON (CT.ADR_MAIL_UTIL = :contactEmail) WHEN NOT MATCHED THEN INSERT (CT.ADR_MAIL_UTIL) VALUES (:contactEmail)