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
有INSERT
或UPDATE
的简单方法吗?
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)
我正在使用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
有INSERT
或UPDATE
的简单方法吗?
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)