我有一个包含多个列的表,其中包含三个复合主键(列customer_id,system_origin,policy_number)。 该表创建如下:
Create table LOST_MEMBER_ACCESS_LOG (
Customer_id varchar2(20) NOT NULL,
System_Origin varchar2(20) NOT NULL,
Policy_Number varchar2(20) NOT_NULL,
PRIMARY_KEY(Customer_id,System_Origin, Policy_Number)
);
我需要编写一个存储过程,如果对于customer_id,system_origin,policy_number的唯一组合已存在行,则第一次检查,然后它使用新值更新已存在的行,否则它会插入新行。
答案 0 :(得分:1)
您要说的是:
if row exists then
update ...
else
insert ...
end if;
但是有更简单的方法。只需进行更新并检查是否触摸了任何行
update lost_member_access_log
set ...
where ... ;
if sql%rowcount = 0 then
insert into lost_member_access_log ...
end if;
MERGE当然也是一种选择。