Oracle中sequence的创建和sequence的触发器的创建
来源:互联网 发布:数据透视表怎么用 编辑:程序博客网 时间:2024/06/05 05:57
首先查看自己用户是否有增加sequence的权限
如果没有的话
添加权限
conn sys/password as sysdba
grant create sequence to 用户;
Orcale添加sequence:
CREATE sequence ZhouMM –创建的sequence的名字
minvalue 1 –最小值从几开始
maxvalue 999999999 –最大值到多少
start WITH 1 –从多少开始
INCREMENT BY 1 –每次添加多少
cache 100 –如果连接锻炼最大缓存数量为100
order;
DB2的写法:
create sequence seq_test
as bigint
start with 20000
increment by 1
minvalue 10000
maxvalue 99999999999999999
cycle
cache 20
order;
PostgreSQL的写法:
create sequence seq_test
increment by 1
minvalue 10000
maxvalue 99999999999999999
start 20000
cache 20
cycle; –一直循环添加
Sequence的修改
修改前提是sequence 的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数.如果想要改变start值,必须 drop sequence 再 re-create .
Alter sequence 的例子:
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXvalue 10000
CYCLE – 到10000后从头开始
NOCACHE
影响Sequence的初始化参数:
SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。
也可以这样
alter sequence mySeq maxvalue 500
注意:不能改start with,其他随便改(设置minvalue值的时候不能大于当前值)
如果没有添加触发器的话,需要这样插入**
insert into TabkInfo11(INSTRUCTIONNUMBER,name)value(ZhouMM.nextval,'小白');
这样就会实现INSTRUCTIONNUMBER字段的自增了
如果添加了触发器就可以
insert into TabkInfo11(INSTRUCTIONNUMBER,name)value('','小白');
这样就可以实现自增了
添加一个sequence触发器:(触发器这是orcale的写法)
CREATE or replace trigger ZhouMM_Increate –触发器的名字
before insert on TASKINFO11 –来源表
FOR each row
DECLARE
nextid NUMBER
BEGIN
IF:new.INSTRUCTIONNUMBER IS NULL or :NEW.INSTRUCTIONNUMBER = 0 THEN
SELECT ZhouMM.nextval –先前建立的sequence
into nextid
FROM sys.DUAL;
:new.INSTRUCTIONNUMBER = nextid;
end if;
end ZhouMM_Increate;
(如果上面的方法出现,创建成功但是编译错误的话使用下面的)或者
create trigger ZhouMM11 before insert on TASKINFO11
– ZhouMM11创建的触发器
–TASKINFO11 表名
for each row
begin
select ZhouMM.nextval into :new.INSTRUCTIONNUMBER from dual;
–INSTRUCTIONNUMBER要自增的字段
end;
如何修改sequence的权限(将用户aaa下的sequence查询权限分配给用户bbb):
conn aaa/aaa
grant select on sequencename to bbb
conn bbb/bbb
select aaa.sequencename.nextval from dual
授予和收回权限:
grant select on seq_teammember_id to aaa
revoke select on seq_teammember_id from bbb
- Oracle中sequence的创建和sequence的触发器的创建
- oracle的sequence创建修改
- oracle创建sequence和触发器trigger
- oracle的SEQUENCE修改,删除,创建
- oracle中创建sequence
- Oracle创建sequence和查询sequence
- 查询用户创建的sequence
- Oracle 创建和修改sequence
- Oracle Sequence的(序列的)创建删除查询
- Oracle 中序列(sequence)和触发器(trigger)的使用
- 通过创建序列来实现ORACLE SEQUENCE的简单介绍
- Oracle中sequence的用法
- Oracle中Sequence的使用
- Oracle中Sequence的使用
- Oracle中sequence的用法
- oracle中 sequence的使用
- Oracle 中sequence的用法
- Oracle中sequence的使用方法
- 精通 CSS+DIV 网页样式与布局 27
- Android MVP的深度解读,让你轻松了解并使用MVP.
- QQ在线回话的超连接13中样式
- MyBatis Generator 详解
- 精通 CSS+DIV 网页样式与布局 28
- Oracle中sequence的创建和sequence的触发器的创建
- Segment Tree Build
- 精通 CSS+DIV 网页样式与布局 29
- 对于JFrame通过菜单栏切换窗口、界面
- android开发 滑动屏幕的监听
- zookeeper部署
- 精通 CSS+DIV 网页样式与布局 30
- 基于GoogleAuthenticator的Totp手机宝令功能
- malloc函数详解