`
xiaojunhu
  • 浏览: 30089 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

ORACLE里设置列自动增长

 
阅读更多

在oracle里创建列自动增长步骤如下:

1 首先创建一个表,例如:

CREATETABLE"DEPARTMENT"
("DEPARTMENT_ID"
NUMBER,
"DEPARTMENT_NAME"
VARCHAR2(30)NOTNULLENABLE,
"MANAGER_ID"
NUMBER(6,0),
"LOCATION_ID"
NUMBER(4,0),
PRIMARYKEY("DEPARTMENT_ID")ENABLE
)
/

2 为DEPARTMENT_ID列创建序列:

CREATESEQUENCE"DEPARTMENT_SEQ"MINVALUE1MAXVALUE9999INCREMENTBY1STARTWITH1NOCACHENOORDERNOCYCLE

3 为该表创建触发器:

CREATEORREPLACETRIGGER"INSERT_DEPARTMENT"
BEFORE
inserton"DEPARTMENT"
foreachrow
begin
select"DEPARTMENT_SEQ".nextvalinto:NEW.DEPARTMENT_IDfromdual;
end;
/
ALTERTRIGGER"INSERT_DEPARTMENT"ENABLE
/

4 完毕,接下来如果你需要往表格里插入数据,则DEPARTMENT_ID就可以自动增长了。列最小值为1,最大值为9999,而且增加基数为1,这几个值你都可以根据自己的需要进行修改。

5 Oracle里另一种实现自动增长的方法如下(仍然以上面建的表为例):

首先创建序列:

dropsequencedepartment_seq;
createsequencedepartment_seq
increment
by1
start
with1
maxvalue
9999999999
nocache;

接下来直接就可以写插入语句了,具体的SQL如下:

insertintodepartmentvalues(department_seq.nextval,'研发部',8,10);
由此可见,完成一个功能的方法是多种多样的,坦白说,我也不知道这两种方法孰好孰坏,但我更加偏向于使用第一中方法。
分享到:
评论

相关推荐

    oracle自动增长列

    oracle自动增长列。 自动序列化, SEQUENCE。

    oracle设置主键自动增长

    oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence  以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle...

    如何为oracle中的表增加自动增长列.pdf

    如何为oracle中的表增加自动增长列.pdf

    Oracle与Mysql自动增长列(id)的区别

    Oracle与Mysql不同,不能在CREATE建立表时设置自动增长列功能。 Oracle必须通过创建sequence序列来实现自动增加列的功能。 首先要建立序列(当然必须要先建好表,添加好主键约束,这列假设约束名为test_sequence)  ...

    oracle建表实例

    创建oracle表,有设置自动增长列。。。。

    Oracle自学(学习)材料 (共18章 偏理论一点)

    8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24...

    Oracle数据库管理员技术指南

    1.2.3 怎样配置符合 OFA 的 Oracle 文件 系统 1.3 规划数据库文件布局 1.3.1 最大化可用性的规划 1.3.2 最小化磁盘争用的规划 1.4 建立参数文件 1.4.1 配置参数的一些注意事项 1.4.2 建立参数文件的连接 ...

    最全的oracle常用命令大全.txt

    下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...

    ORACLE9i_优化设计与系统调整

    §9.10 Oracle数据库增长的规划 111 §9.10.1 不同增长表的配置 111 §9.10.2 对增长表进行规划和分析 112 第10章 数据库结构设计要点 113 §10.1 分析阶段的对表的理解 113 §10.2 正确的主键字段的选择 113 §10.3...

    Oracle触发器

    –今天我们根据学到的东西实现一个id列自动增长的触发器 –首先我们需要建个表,主键id,name不为空 create table student( id number primary key, name varchar2(50) not null ) –查一下看看 select * from ...

    C#进销存系统

    再补充一点:Oracle的自动增长列并不是像SqlServer那样设置一下,就会自动增长,Oracle里面需要你自己创建Sequences,图形操作也行,命令也行,我导出的Oracle脚本里面已经包含了相应的Sequences,应该可以看懂的。...

    Oracle最常用的语句

     autoExtend on next 10M --空间的自动增长的值是10M  permanent online; --永久使用 3.创建用户  create user shi --创建用户名为shi  identified by scj --创建密码为scj  default tablespace 表空间名 --...

    Oracle 和 mysql的9点区别

    1.组函数用法规则 mysql中组函数在select语句中...ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)I

    Oracle与MySQL的几点区别

    Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。  1.组函数用法规则  mysql中组函数在select语句中可以随意使用,但在oracle中如果...ORACLE没有自动增长的数据类型,需要建立一

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    orcale常用命令

    下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...

    程序员的SQL金典6-8

     10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  10.6.3 NULL和字符串  10.6.4 NULL和函数  ...

    程序员的SQL金典7-8

     10.4.3 Oracle中的自动增长字段  10.4.4 DB2中的自动增长字段  10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  10.6.3 NULL和字符串  10.6.4 NULL和函数  ...

Global site tag (gtag.js) - Google Analytics