在Oracle中使用自动递增列
2010-03-09 12:33
281 查看
在Oracle中使用自动递增列
Oracle 沒有類似 MS-SQL 可以直接修改欄位屬性,設定成自動編號欄位,所以我們必須透過 Sequence 物件的 nextval 方法,取得其下一個值,然後將此值新增至 TABLE 中,製造出有自動編號的效果。
建立Sequence 物件的語法:
CREATE SEQUENCE sequence_name
MINVALUE value
MAXVALUE value
START WITH value
INCREMENT BY value
CACHE value;
//建立 Table
Create Table MarsTest(
ID_ NUMBER(10,0) NOT NULL,
Content VARCHAR2(250)
);
//建立 Sequence
1.使用預設值
Create Sequence Seq_MarsTest;
2.使用自訂
Create Sequence Seq_MarsTest
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
调用:
//新增資料
INSERT INTO MarsTest(ID_, Content)
VALUES (Seq_MarsTest.NEXTVAL, 'MarsTest');
從上面的例子,我們也可以發現到,我們是在 INSERT 時,才將 Sequence 與 Table 產生關係,所以 Sequence 不只是提供給特定 Table 使用,也能給其他任一個 Table 共用。
附:
修改序列
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 20
MAXVALUE 999999999999999999999999999
NOCACHE
NOCYCLE;
規則:
>必須為序列的所有者或者擁有ALTER特權
>修改對於以後的序列號生效
>序列必須是被刪除然後重新產生(使所有相關的對象失效,並且失去相應的關聯)
>修改時還要滿足些其他的驗證條件,比如說新的MAXVALUE不可以比現在的序列號低
刪除序列
DROP SEQUENCE dept_deptid_seq;
>必須要是序列的所有者或者有DROP ANY SEQUENCE的權限
Oracle 沒有類似 MS-SQL 可以直接修改欄位屬性,設定成自動編號欄位,所以我們必須透過 Sequence 物件的 nextval 方法,取得其下一個值,然後將此值新增至 TABLE 中,製造出有自動編號的效果。
建立Sequence 物件的語法:
CREATE SEQUENCE sequence_name
MINVALUE value
MAXVALUE value
START WITH value
INCREMENT BY value
CACHE value;
//建立 Table
Create Table MarsTest(
ID_ NUMBER(10,0) NOT NULL,
Content VARCHAR2(250)
);
//建立 Sequence
1.使用預設值
Create Sequence Seq_MarsTest;
2.使用自訂
Create Sequence Seq_MarsTest
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
调用:
//新增資料
INSERT INTO MarsTest(ID_, Content)
VALUES (Seq_MarsTest.NEXTVAL, 'MarsTest');
從上面的例子,我們也可以發現到,我們是在 INSERT 時,才將 Sequence 與 Table 產生關係,所以 Sequence 不只是提供給特定 Table 使用,也能給其他任一個 Table 共用。
附:
修改序列
ALTER SEQUENCE dept_deptid_seq
INCREMENT BY 20
MAXVALUE 999999999999999999999999999
NOCACHE
NOCYCLE;
規則:
>必須為序列的所有者或者擁有ALTER特權
>修改對於以後的序列號生效
>序列必須是被刪除然後重新產生(使所有相關的對象失效,並且失去相應的關聯)
>修改時還要滿足些其他的驗證條件,比如說新的MAXVALUE不可以比現在的序列號低
刪除序列
DROP SEQUENCE dept_deptid_seq;
>必須要是序列的所有者或者有DROP ANY SEQUENCE的權限
相关文章推荐
- oracle的序列使用,创建、表中调用、主键自动生成
- 在oracle中建立自动递增的主键列
- oracle中插入一条数据,id自动增长,插入之后怎么得到这个id(sequence的使用)
- 简单两步快速学会使用Mybatis-Generator自动生成entity实体、dao接口和简单mapper映射(用mysql和oracle举例)
- 使用Oracle调度程序自动完成任务
- oracle 使用RMAN自动备份
- 关于Oracle ADF 11g实现自动提示(客户端和服务端监听的使用)(一)
- oracle 怎样设置自动递增的的字段,也就是设置自动递增的ID 主键
- 【转】Oracle中使用WMSYS.WM_CONCAT 进行列转换行,并自动拼接
- ORACLE创建按月和按天的自动递增分区
- 在PL/SQL Developer里设置Oracle数据库的字段自动递增功能
- Oracle 11g安装“无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色”报错解决
- 如何使用oracle 的DBMS_SQLTUNE package 来运行 Sql Tuning Advisor 进行sql 自动调优
- ORACLE自动递增--序列
- 关于Oracle字段类型Date使用mybatis generator自动生成工具出现的查询日期只精确到年月日问题
- 在oracle中插入一条数据,id自动增长,插入之后怎么得到这个id(sequence的使用)
- Oracle expdp和impdp自动使用resumable特性
- OracleOraDb11g_home1TNSListener服务启动后停止,某些服务在未由其它服务或程序使用时将自动停止
- 在oracle中插入一条数据,id自动增长,插入之后怎么得到这个id(sequence的使用)
- Windows平台使用RMAN命令自动删除Oracle过期归档日志的方法