pl/sql中插入之前如何检查该记录是否已经在表中?
acmly 2005-08-09 10:26:58 有一个表,假设是这样的
CREATE TABLE Test (
field1 number(7) primary key,
field2 varchar2(30)
);
假设field1上有索引。
然后在PL/SQL程序中要对该表进行插入操作,在插入之前要判断一下是否重复,我前面用了个很笨的方法,总觉得不爽,发上来大家给点比较好的方法。
我是这样做的:
UPDATE Test
SET field1 = v_field1
WHERE field1 = v_field1;
IF (SQL%NOTFOUND) THEN
INSERT INTO Test VALUES(v_field1, v_field2);
END IF;
当然还可以这样:
OPEN c_Record FOR SELECT field1 FROM Test WHERE field1 = v_field1;
FETCH c_Record INTO v_temp;
IF(c_Record%NOTFOUND) THEN
INSERT INTO Test VALUES(v_field1, v_field2);
END IF;
总觉得应该有更方便的办法,请指点一下:)