oracle中设置自增主键
来源:互联网 发布:服务器硬盘恢复数据 编辑:程序博客网 时间:2024/05/01 21:55
新建序列
create sequence name
increment by x //x为增长间隔
start with x //x为初始值
maxvalue x //x为最大值 nomaxvalue 不设置最大值
minvalue x //x为最小值 nominvalue 不设置最小值
cycle //循环使用,到达最大值或者最小值时,从新建立对象 (从头开始,也可以为nocycle)
cache x //制定缓存序列值的个数
删除序列 drop sequence 序列名
如果指定CACHE值,oracle就可以预先在内存里面放置一些 sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失. 所以可以在create sequence的时候用nocache防止这种情况。
但是要注意的是:第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL总是返回当前sequence的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。
------------------------一个例子-----------------------
create sequence for_test --序列名
increment by 1 --每次增加1
start with 1 --从1开始
nomaxvalue --没有最大值
nocache --没有缓存序列
----------------------------创建测试表------------------
create table Test
(
TestID int primary key,
TestName varchar2(20) not null,
Tdescription varchar2(200) null
)
-----------------------------使用序列-------------------
insert into Test
values(for_test.nextval,'序列测试','这是一个序列使用的例子')
--------------------序列使用结果查询-----------------
select * from test
触发器
1
CREATE or replace TRIGGER "触发器名称" BEFORE
INSERT ON Test FOR EACH ROW WHEN (new.TestID is null)
begin
select for_test.nextval into: new.TestID from dual; //for_test 序列名
end;
INSERT INTO Test (TestName,Tdescription ) Values('Cao','Heibei');
删除触发器 drop trigger 触发器名称
2
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;
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为列名
序列提供两个方法,NextVal和CurrVal。顾名思义,NextVal为取序列的下一个值,一次NEXTVAL会增加一次sequence的值;CurrVal为取序列的当前值。- oracle中设置自增主键
- oracle中设置自增主键
- oracle中设置自增主键
- oracle中设置自增主键简化
- oracle中设置自增主键
- oracle中设置自增主键
- Oracle中设置自增主键
- oracle中设置自增主键
- oracle中设置自增主键(id)
- oracle中设置自增主键
- Oracle中设置自增主键
- 在Oracle中设置主键自增
- Oracle 设置自增主键
- 设置Oracle主键自增
- oracle设置主键自增
- Oracle自增主键设置
- oracle中设置表中主键字段自增
- oracle中主键自增
- 一个C资源URL
- 加密解密Url的类
- 使用Line建立漂亮的Grid DataWindow的技巧
- JavaScript的方法和技巧
- 使可编辑的数据窗口只读
- oracle中设置自增主键
- PHP Header使用注意事项
- 在Visual Studio 2005中调试SQL Server 2005的存储过程
- 两个异地数据库操作
- 数据窗口检查重复行
- JavaScript与C# Windows应用程序交互
- 控制DATAWINDOW里每页显示的行数
- 自动注册 sql anywhere 数据源出现的问题
- CPIM:消息格式