1.comment on 命令的用法
oracle中用comment on 命令给表或者表中的字段增加说明
用法如下:以trans表为例
对表的说明–代码如下:
comment on table TRANS is ‘交易信息’;
对字段的声明如下:
comment on column TRANS.TRANS_ID is ‘交易主键’;
comment on column TRANS.CUSTOMER_ID is ‘商户主键’;
comment on column TRANS.TERMINAL_ID is ‘终端主键’;
查看表的说明,实例如下:
select * from user_tab_comments where TABLE_NAME=’TRANS’;
查看列的说明
select * from user_tab_comments where comments is not null;
查看表级和列级说明:
ALL_COL_COMMENTS
USER_COL_COMMENTS
ALL_TAB_COMMENTS
USER_TAB_COMMENTS
删除表和字段的说明直接置为空即可:
comment on table trans is ’ ’ ; ——删除表的说明
comment on column trans.trans_id is ’ ‘;—–删除字段的说明
2.sequence:序列
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。有点像SQL中的identity(1,2),sequence不属于某个表也不属于某个字段,而是属于某个用户,
定义了sequence后,每个表都可以使用,但是容易造成数据混乱,所以最好是每一个表定义一个sequence.
1、定义序列:Create Sequence
(1).你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,
创建权限的语句如下:
grant create sequence to [数据库用户], —-只对当前用户有效
grant create any sequence to [数据库用户] –对任何用户都有效
(2).定义序列实例如下:
create sequence [序列名] —–创建序列
minvalue 1 —–设置最小值
maxvalue 999999999999999999 - –设置最大值 或 nomaxvalue不设置最大值
start with 518286 –设置计数开始得值
increment by 1 –每次增加1
cache 20; –设置缓存cache个序列,设置缓存cache后,oracle会自动在内存中放一些sequence,sequence取完后,会再次放一些新的sequence,这样存取的时候就会快些,但是这样有可能会序列不连续的情况,如果系统down机会导致序列不连续那么可以设置成nocache.
—————-表table———
如果对表定义一个sequence,实例如下:
create sequence sequence_table
minvalue 1
maxvalue 99999999999
start with 1
increment by 1
cycle ————序列到达最大值的时候从头开始循环,或者使用nocycle(一直累加不循环)
nocache;
定义完一个序列,就可以使用CURRVAL,NEXTVAL:
第一次使用nexval返回的是初始值,以后每次使用都会增加自定义的increment by 的值,然后返回增加后的值.currval 返回的是当前sequence得值,但是在第一次nenval的值初始化之后才能使用currval,否则会出错.
2:sequence什么时候使用
————-创建表的时候———
create table MEMBER_COUPON
(
MEMBER_COUPON_ID NUMBER(18) not null,
COUPON_CODE VARCHAR2(32) not null,
COUPON_NAME VARCHAR2(64),
)
可以看如下例子:
insert into MEMBER_COUPON(MEMBER_COUPON_ID,COUPON_CODE , COUPON_NAME )values(sequence_table.Nextval,’600001’,’10元代金劵’);
3.修改sequence用alter,如果用户有权限就可以对sequence进行修改,但是只能修改除Start with以外的所有sequence参数,如果想改变start得值就删掉序列重新创建,drop sequence [定义的序列名]
影响Sequence的初始化参数:
SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。