【问题标题】:Create table with auto_increment with Oracle11g使用 Oracle11g 创建具有 auto_increment 的表
【发布时间】:2014-10-19 07:21:35
【问题描述】:

我想用 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);

那么我的表也没有创建。 谢谢

【问题讨论】:

标签: oracle oracle11g


【解决方案1】:

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

CREATE SEQUENCE my_seq;

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

【解决方案2】:

我使用并且对我来说效果很好的通常做法是使用通常的整数/数字数据类型创建列。执行如下

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

当插入你时这样做

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

我通常使用 Seq 之后的表名作为一个很好的编码习惯命名约定好记

【讨论】:

    【解决方案3】:

    Auto_increment 在版本 11g 中不可用。您需要查找 SequencesTriggers 才能执行此操作。

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 2010-09-10
      • 1970-01-01
      • 2023-03-19
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多