不使用 Replace 函数替换重复的主键行
Replace duplicate primary key rows without using Replace function
我有一种情况,我被传递插入语句到我的 table EXAMPLE_TABLE
。我在 ID
列上有我的主键,每当插入与 table 中的当前值具有相同 ID 的行时,我想替换该行。
我无法控制插入数据的函数 - 它始终是 INSERT
语句。
如何使用约束或触发器(或类似的)来实现这一点?
谢谢大家
您可以通过在插入前删除现有行来实现。因此,您必须使用将在插入新行之前触发的 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
.
我有一种情况,我被传递插入语句到我的 table EXAMPLE_TABLE
。我在 ID
列上有我的主键,每当插入与 table 中的当前值具有相同 ID 的行时,我想替换该行。
我无法控制插入数据的函数 - 它始终是 INSERT
语句。
如何使用约束或触发器(或类似的)来实现这一点?
谢谢大家
您可以通过在插入前删除现有行来实现。因此,您必须使用将在插入新行之前触发的 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
.