Oracle中自增字段的两种方法的比较(Trigger和Sequence)

孙卫国77

孙卫国77

2016-02-19 19:47

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的Oracle中自增字段的两种方法的比较(Trigger和Sequence),希望大家看完后能赶快学习起来。

  在ORACLE中,没有象MS-SQLSERVER中那样子有自增字段,但是如果我们要实现这个功能,有2种方法

  1 Trigger

  sql语句如下:

create or replace trigger trigger_name
before insert on your_sid.tablename
for each row
begin

declare
i number;
cursor cur is select max(id) from your_sid.tablename;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

BEGIN
open cur;

FETCH cur INTO i;

if i is NULL then
:new.id := 0;  //可以根据实际需要来定初始值
else
:new.id := i + 1; //这里以1递增
end if;

Close cur;
END;

END;
/

  其中:your_sid为数据库的当前用户SID,tablename为表名,id为列名,

  2 Sequence

  sql语句如下:

create sequence your_sid.sequence_name
increment by 1  //指定序列以1递增,如果没指定,默认值1会使用
start with 1        //由1开始计数
nomaxvalue     //不设置最大值
minvalue 1      //设置最小值1
cache 20        //预分配缓存大小为20
order

  二者的区别在于,Sequence的效率要比Trigger的高,因为Trigger每次都要遍历表中所有记录以寻找ID最大值,而Sequence每次执行后,都会保留最大值;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

Oracle中自增字段的两种方法的比较(Trigger和Sequence)

编程语言 网络编程
Oracle中自增字段的两种方法的比较(Trigger和Sequence)

Oracle 自增(auto increment) 或 标识字段的建立方法

编程语言 网络编程
Oracle 自增(auto increment) 或 标识字段的建立方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

分享Oracle9i中建立自增字段的最新办法

编程语言 网络编程
分享Oracle9i中建立自增字段的最新办法

Word2018中设置行距的两种方法

word
Word2018中设置行距的两种方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在PowerPoint中插入视频的两种方法

电脑入门
在PowerPoint中插入视频的两种方法

亲子瑜伽的两种方法

幼儿园 宝宝
亲子瑜伽的两种方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Oracle非法数据库对象引起的错误及解决

Oracle非法数据库对象引起的错误及解决

原以为那是幸福的开端,却不料它迅速凋谢.

原以为那是幸福的开端,却不料它迅速凋谢.
下拉加载更多内容 ↓