1
我有一個過程在表中插入一行。我做了各種檢查,如果一切都通過,它會在表格中插入一行。在oracle過程中,檢查是否存在具有主鍵的行,如果鍵已經存在異常
其中一項檢查是檢查表中是否存在具有主鍵的行。如果主鍵的行已經存在,程序應該能夠捕捉它並引發錯誤。
這樣做的最佳方式是什麼?
我有一個過程在表中插入一行。我做了各種檢查,如果一切都通過,它會在表格中插入一行。在oracle過程中,檢查是否存在具有主鍵的行,如果鍵已經存在異常
其中一項檢查是檢查表中是否存在具有主鍵的行。如果主鍵的行已經存在,程序應該能夠捕捉它並引發錯誤。
這樣做的最佳方式是什麼?
爲什麼不讓Oracle爲您處理它,而不是手動檢查主鍵衝突。如果嘗試插入表中,並且發現主鍵衝突,則Oracle引發'dup_val_on_index'異常。例如:
declare
begin
--try and insert a value into the table
insert into my_table (
id,
description
) values (
1,
'a duplicate id'
);
exception
when dup_val_on_index then
dbms_output.put_line('a duplicate primary key');
--your error handling logic here
raise; --optionally re-raise the exception
end;
這樣你不僅抓到PK違規,而且每違反一個唯一約束 – Aleksej
甜。這是我正在尋找的。謝謝。 – DarcliGht