oracle主键自增长

举报
小傅哥 发表于 2021/04/22 01:19:56 2021/04/22
【摘要】 1、比较土鳖的方式       定义主键number类型,之后每次存数据时候,id为取得此表的max(id),之后+1,在存放进去       可以用时间作为主键,唯一。 2、官方版       使用序...

1、比较土鳖的方式

      定义主键number类型,之后每次存数据时候,id为取得此表的max(id),之后+1,在存放进去
      可以用时间作为主键,唯一。

2、官方版

      使用序列方式,增长主键。下面介绍使用过程。

创建测试表 t


      SQL> create table t(
       2  id number(10) primary key,
       3  name varchar2(20) not null);
      Table created
  
 


创建序列sequence t_id


      SQL> create sequence t_id
       2  start with 2 --以2开始
       3  increment by 2; --以2为自增长1、3、5、7...
      Sequence created
  
 


使用序列


      SQL> insert into t values(t_id.nextval,'人1');
      1 row inserted
      SQL> insert into t values(t_id.nextval,'人1');
      1 row inserted
      SQL> insert into t values(t_id.nextval,'人1');
      1 row inserted
      SQL> insert into t values(t_id.nextval,'人1');
      1 row inserted
  
 


查询表t


      SQL> select * from t;
       ID NAME
      ----------- --------------------
       21
       41
       61
       81
  
 

 

删除表数据删除表


      SQL> truncate table t;
      Table truncated
      SQL> drop table t;
      Table dropped
  
 


恢复删除表

flashback table t to before drop;
 

 

序列详情介绍
 


      --序列
      /*
       *需求:在插入记录时,主键值,需要不重复而且唯一,
       *它的值靠人工生成不太靠普,所以我们需要一个能生成值的一个东西,
       *这个东西就是序列,序列是一个数据库对象。生成序列的语法:
       */
      create sequence [user.]sequence_name
       [start with n]1
       [increment by n]/*以n=2为增长1,3,5*/
       [maxvalue n | nomaxvalue]
       [minvalue n | nominvalue]
       [noorder|order]/*多线程,单线程*/
       [nocycle]
       [cache n]; /*缓存*/
      --删除序列
      drop sequence sequence_name;
      --更改序列 1 3 5
      alter sequence sequence_name
      increment by 2
       maxvalue 80
      minvalue 1
      order
      nocycle
      cache 2;
  
 


 

文章来源: bugstack.blog.csdn.net,作者:Yao__Shun__Yu,版权归原作者所有,如需转载,请联系作者。

原文链接:bugstack.blog.csdn.net/article/details/7899954

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。