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

时间:2017-08-21 15:09:19

标签: sql merge db2 insert-update

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

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

  

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

<ExcludeFoldersFromDeployment> wwwroot\images </ExcludeFoldersFromDeployment> INSERT的简单方法吗?

2 个答案:

答案 0 :(得分:1)

Db2中的public class MyViewHolder extends RecyclerView.ViewHolder { TextView titleTxt,desctxt,dateTxt,adview; ImageView img; public MyViewHolder(View itemView) { super(itemView); titleTxt= (TextView) itemView.findViewById(R.id.titleTxt); desctxt= (TextView) itemView.findViewById(R.id.descTxt); dateTxt= (TextView) itemView.findViewById(R.id.dateTxt); // img= (ImageView) itemView.findViewById(R.id.articleImage); } 命令具有IMPORT选项。您可以在此处阅读IMPORT command

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

在他们的上下文中,基于某些规则插入新数据并更新现有数据。

答案 1 :(得分:0)

我找到了一个可以做我想要的解决方案,但我不知道这是不是最好的方式!无论如何,我发布它来帮助谁面临同样的问题,但如果有人有另一个建议,欢迎:

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)