我运行像这样的查询:在Oracle中插入rowid后可以立即失效吗?
INSERT INTO foo (...) VALUES (...) RETURNING ROWID INTO :bind_var
SELECT ... FROM foo WHERE ROWID = :bind_var
本质上讲,我插入一行,并获取其ROWID,然后做一个选择针对ROWID获取数据从记录回来。虽然偶尔,ROWID将不会被发现。
忽略这样一个事实,即可能有更好的方法来做我想做的事情,假设没有其他人使用数据库,ROWID可以快速更改吗?
UPDATE有涉及的触发器。这里的DDL语句吧:
CREATE OR REPLACE TRIGGER "LOG_ELIG_DEMOGRAPHICS_TRG"
before insert on log_elig_demographics
for each row
begin
select log_elig_demographics_seq.nextval into :new.log_idn from dual;
end;
从本质上讲,它只是设置为帮助我们模拟一个IDENTITY /自动增量字段的触发器。这个触发器有什么问题吗?
有一个触发器从序列创建主键。但它*不应该*反转插入。我会用触发器的DDL语句更新我的问题。 – 2009-09-29 18:38:22