1、比較土鱉的方式
????? 定義主鍵number類型,之后每次存數(shù)據(jù)時候,id為取得此表的max(id),之后+1,在存放進(jìn)去
??????可以用時間作為主鍵,唯一。
2、官方版
??????使用序列方式,增長主鍵。下面介紹使用過程。
創(chuàng)建測試表?t
SQL> create table t(
2 id number(10) primary key,
3 name varchar2(20) not null);
Table created
創(chuàng)建序列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
刪除表數(shù)據(jù)刪除表
SQL> truncate table t;
Table truncated
SQL> drop table t;
Table dropped
恢復(fù)刪除表
flashback table t to before drop;
序列詳情介紹
?
--序列
/*
*需求:在插入記錄時,主鍵值,需要不重復(fù)而且唯一,
*它的值靠人工生成不太靠普,所以我們需要一個能生成值的一個東西,
*這個東西就是序列,序列是一個數(shù)據(jù)庫對象。生成序列的語法:
*/
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;