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


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


创建序列sequence t_id


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


使用序列


  
  1. SQL> insert into t values(t_id.nextval,'人1');
  2. 1 row inserted
  3. SQL> insert into t values(t_id.nextval,'人1');
  4. 1 row inserted
  5. SQL> insert into t values(t_id.nextval,'人1');
  6. 1 row inserted
  7. SQL> insert into t values(t_id.nextval,'人1');
  8. 1 row inserted


查询表t


  
  1. SQL> select * from t;
  2. ID NAME
  3. ----------- --------------------
  4. 2 人1
  5. 4 人1
  6. 6 人1
  7. 8 人1

 

删除表数据删除表


  
  1. SQL> truncate table t;
  2. Table truncated
  3. SQL> drop table t;
  4. Table dropped


恢复删除表

flashback table t to before drop;
 

 

序列详情介绍
 


  
  1. --序列
  2. /*
  3. *需求:在插入记录时,主键值,需要不重复而且唯一,
  4. *它的值靠人工生成不太靠普,所以我们需要一个能生成值的一个东西,
  5. *这个东西就是序列,序列是一个数据库对象。生成序列的语法:
  6. */
  7. create sequence [user.]sequence_name
  8. [start with n]1
  9. [increment by n]/*以n=2为增长1,3,5*/
  10. [maxvalue n | nomaxvalue]
  11. [minvalue n | nominvalue]
  12. [noorder|order]/*多线程,单线程*/
  13. [nocycle]
  14. [cache n]; /*缓存*/
  15. --删除序列
  16. drop sequence sequence_name;
  17. --更改序列 1 3 5
  18. alter sequence sequence_name
  19. increment by 2
  20. maxvalue 80
  21. minvalue 1
  22. order
  23. nocycle
  24. 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个月内不可修改。