我有一個Oracle表格,其中包含以下關鍵字:ID,名稱,DoB,部門& FileNo。 ID字段是具有自動增量值的主鍵。如何根據自動遞增值編寫Oracle觸發器?
我希望寫一個觸發器,這樣,當添加了姓名,出生日期&系一排,FileNo在現場應該得到的價值爲yyyy/XXXX,其中「YYYY」是一個預定義的字符串&「XXXX」是ID字段中的值。
我該怎麼做?
我有一個Oracle表格,其中包含以下關鍵字:ID,名稱,DoB,部門& FileNo。 ID字段是具有自動增量值的主鍵。如何根據自動遞增值編寫Oracle觸發器?
我希望寫一個觸發器,這樣,當添加了姓名,出生日期&系一排,FileNo在現場應該得到的價值爲yyyy/XXXX,其中「YYYY」是一個預定義的字符串&「XXXX」是ID字段中的值。
我該怎麼做?
你需要一個序列來實現的自動遞增值:上表
CREATE TRIGGER file_trg
BEFORE insert
ON file_table
FOR EACH ROW
BEGIN
SELECT seq_file_id.NEXTVAL INTO :new.id FROM dual;
:NEW.fileno := 'yyyy' || :new.id;
END;
/
我將你標記爲已接受,因爲你給了我完整的代碼。 – 2011-06-09 15:29:38
如果它總是帶有一些前綴的ID,那麼它可能不應該是一列。如果這是默認值,那麼設置:new.fileno := 'string'||:new.id
的觸發器就足夠了。
Oracle沒有自動增量,所以你可能意味着一個序列。如果你有一個觸發器填充,那麼這可以在相同的觸發器中。
也許你需要一個簡單的視圖或物化視圖
和觸發器。 – 2011-06-09 05:44:18