【问题标题】:How can I ignore data from insert select join if data exists?如果数据存在,如何忽略插入选择联接中的数据?
【发布时间】:2015-02-03 08:33:56
【问题描述】:

我正在使用 C# 中的代码,我有这个查询..

Insert into emp_names(emp_ln, emp_fn, emp_mi, emp_id)
  select ow.own_ln, ow.own_fn, ow.own_mi, emp_sequence.nextval
  from own_names ow 
    join businesses bn on bn.own_code = ow.own_code 
    join business_que bnque on bnque.own_code = ow.own_code
  where bn.mms = '33334' or bnque.bin = '33334';

该查询用于将数据从一个表own_names 插入到emp_names,在该表中,我将表own_names 中具有own_code 值的两个表列连接起来。该查询适用于我的代码,但我的问题是当我尝试再次运行查询时,它会重新创建具有不同 id 的行,因为它是自动递增的。我想要的是忽略emp_names 表上存在的数据

【问题讨论】:

    标签: c# sql oracle11g


    【解决方案1】:

    使用merge into 而不是插入。除了emp_id,您的表还应该具有“真实”的业务主键。在合并on 条件下使用这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2014-02-19
      相关资源
      最近更新 更多