oracle主键自增长
【摘要】 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
-
----------- --------------------
-
2 人1
-
4 人1
-
6 人1
-
8 人1
删除表数据删除表
-
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)