【发布时间】:2013-12-26 16:58:56
【问题描述】:
我正在尝试在 oracle 中创建一个触发器,该触发器将检测重复的插入主键,并通过添加前缀字符(例如“P_”)重命名新键。 如果有人知道这个问题的优雅解决方案,我会很高兴看到答案:)。
我开始这样写:
create or replace
TRIGGER t1_trigger
BEFORE INSERT
ON T1
DECLARE selected_id varchar2(10);
BEGIN
SELECT id INTO selected_id FROM T1 WHERE id = :new.id;
IF (selected_id NOT NULL)
THEN INSERT INTO T1 VALUES('p_');
END IF;
END;
【问题讨论】:
-
如果您已经有了
id = 200和id = p_200的记录,并试图插入一条带有id=200的新记录,您会怎么做? -
我已经考虑过这个问题,我只是想把事情简单化,没有考虑到这一点,这是一个大学作业,所以我在实施上有一个限制。
标签: oracle triggers primary-key sql-insert