我運行像這樣的查詢:在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