我在Oracle里用SQL创建表,如何像SQL Server一样定义自动编号列(int identity(1,1)),以及定义布尔型列?
如题。 问题点数:15、回复次数:4Top
1 楼mosquitoxh((IT,中间件,架构)http://it.paiming.org/bbs)回复于 2006-03-10 11:12:39 得分 6
自动编号列(int identity(1,1))可以用sequence实现
定义布尔型列? 用VARCHAR2或者number都可以实现Top
2 楼guishuanglin(蓝色枫林)回复于 2006-03-10 13:15:29 得分 2
在oracle管理介面里的:解决方案,找到当前用户,里面有序列,新建一个就是,只要select一次,就加1
Top
3 楼DF_4B(机车乘务员)回复于 2006-03-17 16:06:28 得分 7
《Oracle 9i入门与提高》P.218
序列是一种可被多个用户使用的用于产生一系列惟一数字的数据库对象。
创建序列:
CREATE SEQUENCE [模式.]序列名称
[START WITH 起始数字]
[MINVALUE 最小值 | NOMINVALUE]
[MAXVALUE 最大值 | NOMAXVALUE]
[INCREMENT BY 增量]
[CYCLE | NOCYCLE] --是否可以循环
[ORDER | NOORDER] --是否排序
查询已存在的序列:
select * from user_sequences;
修改序列:
ALTER SEQUENCE seq_name NOCYCLE CACHE 30;
删除序列:
DROP SEQUENCE seq_name;
在SQL语句中可以通过NEXTVAL和CURRVAL伪列来引用序列,每引用一次序列的伪列NEXTVAL,就会按照序列的定义产生一个新的序列码;而通过序列的伪列CURRVAL,可以反复利用当前的序列码。
例:
insert into tbname values (seqname.nextval,’values1’,’values2’);
Top
4 楼tangjichuan(唐纪传)回复于 2006-03-23 10:03:30 得分 0
谢谢!Top




