2011-12-13 80 views
0

VARCHAR我有這個表AUTO_INCREMENT與甲骨文

CREATE TABLE WishList(
    idWishList VARCHAR2(40 BYTE) , 
    WishListName VARCHAR2(40 CHAR) NOT NULL, 
    id_User VARCHAR2(40 BYTE) NOT NULL 
) 

現在我怎樣才能在oracle中使用AUTO_INCREMENT用VARCHAR?

+3

你所用VARCHAR AUTO_INCREMENT意思?像A,B,C,...,Z,AA,...,ZZ,AAA還是什麼? – chance

+1

你需要給我們一個你的意思的例子。請發佈一些數據。 – APC

+0

你是什麼意思由auto_increment與varchar?像A,B,C,...,Z,AA,...,ZZ,AAA還是什麼?是的 – Kohan95

回答

2

您可以添加一個觸發器:

create or replace trigger some_trig_name 
before insert on WishList 
for each row 
begin 
:new.idWishList := to_char(your_sequence.nextval); 
end some_trig_name; 

在這個例子中我使用了一個序列,但你可以把任何你想要的

+0

這將導致整個數字數據存儲在'varchar2'字段中。如果OP需要實際的字母數字數據,則需要在序列和字段之間實施某種翻譯方案。 – Allan

1

我記得,Oracle沒有auto_increment功能。它具有序列和開發商應該增加特殊功能像getNextId(),並用它在插入語句就像

insert into table (id,...) values(getNextId() ,..) 

所以,你可以實現你自己的函數返回新的ID與自己的算法你的領域。