小编Bud*_*ddy的帖子

如何在dup_val_on_index Oracle SQL上处理自动递增序列

我有一个Oracle表

  1. 使用序列的自动增量主键。
  2. 唯一键
  3. 非唯一字段
create table FOO (
    ai_id number primary key,
    name varchar(20),
    bar varchar(20)
    CONSTRAINT foo_uk_name UNIQUE (name)
);
create sequence  FOO_seq;

create or replace trigger FOO_trg
before insert on FOO
for each row
begin
  select FOO_seq.nextval into :new.ai_id from dual;
end;
Run Code Online (Sandbox Code Playgroud)

我有单独的存储过程,可以对表进行更新

create PROCEDURE UPSERT_FOO(
  name_input IN VARCHAR2,
  bar_input IN VARCHAR2
begin
  begin
    insert into FOO ( name, bar )
    values ( name_input, bar_input )
  exception
    when dup_val_on_index then
      update FOO 
      set  bar = bar_input
      where name …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g

1
推荐指数
1
解决办法
57
查看次数

标签 统计

oracle ×1

oracle11g ×1

sql ×1