使用Oracle11g创建带auto_increment的表

时间:2014-08-26 04:01:35

标签: oracle oracle11g

我想用auto_increment创建表。我正在使用oracle11g数据库

create table employee(id number(6) auto_increment,first_name varchar2(20) default null,last_name varchar2(20) default null,salary number(7) default null);

这是我正在执行的查询但是没有创建表。我也试过了序列。

我做的序列

create table employee(id number(6) name_of_sequence.nextval,first_name varchar2(20) default null,last_name varchar2(20) default null,salary number(7) default null);

然后我的表也没有创建。 谢谢

3 个答案:

答案 0 :(得分:0)

您可以在oracle中创建一个称为序列的对象,例如

CREATE SEQUENCE my_seq;

然后在您的代码中使用my_seq.nextval在存储过程,触发器或客户端代码中引用它。该序列未绑定到sqlserver中的实时列。如前所述,这可能在oracle的更高版本中有可能。

答案 1 :(得分:0)

我使用并且适合我的常用做法是使用通常的数据类型整数/数字创建列。执行如下

create table MyTab
(
My_auto_inc integer/number,....
);

并在插入时执行此操作

Insert Into MyTab(My_auto_inc,...)
Values(Seq_MyTab.nextval,...);

我通常在Seq之后使用表名作为一种易于记忆的良好编码实践命名约定

答案 2 :(得分:0)

版本11g中无法使用Auto_increment。您需要查找SequencesTriggers才能执行此操作。