oracle中使用varchar的auto_increment

时间:2011-12-13 14:52:46

标签: sql oracle

我有这张桌子

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

现在我如何在oracle中使用带有varchar的auto_increment?

2 个答案:

答案 0 :(得分: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;

在示例中我使用了seq但你可以放任何你想要的东西

答案 1 :(得分:1)

我记得,Oracle没有auto_increment功能。它有序列,开发人员应该添加像getNextId()这样的特殊函数,并在插入语句中使用它,比如

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

因此,您可以使用自己的算法实现自己的函数,该函数返回字段的新ID。