在插入之前如何检查表以查看行是否已存在?

时间:2013-03-30 17:08:59

标签: oracle11g sqlplus

这是我的剧本。尝试通过比较deptno

来确定检查行是否已存在的最佳方法
CREATE OR REPLACE PROCEDURE insert_rows
    (pl_deptno dept.deptno%TYPE, pl_dname dept.dname%TYPE, pl_loc dept.loc%TYPE
    ) AS
    BEGIN
    INSERT INTO dept 
    (deptno,dname,loc) 
    values ( pl_deptno,pl_dname,pl_loc);
    end insert_rows;
    /

1 个答案:

答案 0 :(得分:0)

如果deptno是唯一键,只需插入一行即可。如果存在重复,请捕获异常并执行所需操作。

否则,如果两个用户同时插入/检查,您将获得需要处理事务的各种竞争条件。