如果在Oracle中不存在记录,如何插入记录?

如果记录在Oracle中不存在,如何插入记录?这是我想要做的:

IF NOT EXISTS (SELECT * FROM AROH_FAA_AIRPORT WHERE AIRPORT_ABBREVIATION = '0D7') 
BEGIN 
  insert into AROH_FAA_AIRPORT 
  (FAA_AIRPORT_OID,CITY,FAA_LISTED_AIRPORT_NAME,AIRPORT_ABBREVIATION) 
  values(AROH_FAA_AIRPORT_SEQ.nextval,'ADA','0D7') 
END

解决方法

insert into AROH_FAA_AIRPORT 
   (FAA_AIRPORT_OID,AIRPORT_ABBREVIATION) 
select AROH_FAA_AIRPORT_SEQ.nextval,'0D7') 
from dual 
where not exists (select 42
                  from AROH_FAA_AIRPORT 
                  WHERE AIRPORT_ABBREVIATION = '0D7');

或者,您可以使用MERGE语句:

merge into AROH_FAA_AIRPORT a
using (
    select 'ADA' city,'ADA' as faa_listed_airport_name,'0D7' as as airport_abbreviation 
    from dual 
) t ON (t.city = a.city)
when not matched then 
  insert 
     (FAA_AIRPORT_OID,AIRPORT_ABBREVIATION)
  values 
     (AROH_FAA_AIRPORT_SEQ.nextval,t.city,t.faa_listed_airport_name,t.airport_abbreviation);

相关文章

Java Oracle 结果集是Java语言中处理数据库查询结果的一种方...
Java AES和Oracle AES是现代加密技术中最常使用的两种AES加密...
Java是一种广泛应用的编程语言,具备可靠性、安全性、跨平台...
随着移动互联网的发展,抽奖活动成为了营销活动中不可或缺的...
Java和Oracle都是在计算机领域应用非常广泛的技术,他们经常...
Java 是一门非常流行的编程语言,它可以运行于各种操作系统上...