我遇到的情况是我将插入语句传递到表EXAMPLE_TABLE
。我在列ID
上有我的主键,每当插入一个与表中当前值具有相同ID的行时,我想替换此行。
我无法控制插入数据的函数 - 它始终是INSERT
语句。
如何使用约束或触发器(或类似的)来实现?
全部谢谢
答案 0 :(得分:2)
您可以通过在插入之前删除现有行来实现它。因此,您必须使用在插入新行之前将被触发的Trigger
。您可以尝试以下解决方法。
CREATE OR REPLACE TRIGGER EXAMPLE_TABLE_TRIGGER1
BEFORE INSERT ON EXAMPLE_TABLE
for each row
declare
BEGIN
delete from EXAMPLE_TABLE where id=:new.id;
END;
每当新行即将插入时,将调用此Trigger
,它将删除前一行,以便您的插入函数正常工作,更确切地说,它将作为update
工作。