SYS_GUID
返回一個GUID-一個全局唯一的ID。一個SYS_GUID
是RAW(16)
。它不生成遞增的數(shù)值。
如果要創(chuàng)建一個遞增的數(shù)字鍵,則需要創(chuàng)建一個序列。
CREATE SEQUENCE name_of_sequence START WITH 1
INCREMENT BY 1
CACHE 100;
然后,您可以在您的INSERT
陳述
INSERT INTO name_of_table( primary_key_column, <<other columns>> )
VALUES( name_of_sequence.nextval, <<other values>> );
或者,可以定義一個觸發(fā)器,該觸發(fā)器使用序列自動填充主鍵值。
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name FOR EACH ROWBEGIN
SELECT name_of_sequence.nextval INTO :new.primary_key_column FROM dual;END;
如果使用的是Oracle 11.1或更高版本,則可以稍微簡化觸發(fā)器
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT ON table_name FOR EACH ROWBEGIN
:new.primary_key_column := name_of_sequence.nextval;END;
如果你真的想用SYS_GUID
CREATE TABLE table_name (
primary_key_column raw(16) default sys_guid() primary key,
<<other columns>>)