我有一张桌子
CREATE TABLE STUDENT
(
ID INTEGER PRIMARY KEY,
FIRSTNAME VARCHAR2(1024 CHAR),
LASTNAME VARCHAR2(1024 CHAR),
MODIFIEDDATE DATE DEFAULT sysdate
)
我正在插入一行数据
insert into STUDENT (ID, FIRSTNAME, LASTNAME, MODIFIEDDATE) values (1,'Scott', 'Tiger', sysdate);
当我必须插入一条数据记录时,我需要编写一个执行以下操作的过程或函数:
- 如果没有相同 id 的记录,则插入该行。
- 如果有相同 id 和数据匹配的记录,则什么也不做。
- 如果有相同 id 的记录但数据不匹配,则更新数据。
我是甲骨文的新手。从 java 端,可以通过 id 选择记录,然后更新该记录,但这会进行 2 次数据库调用。只是为了避免我尝试使用过程更新表。如果可以在单个数据库调用中完成相同的操作,请提及。