oracle中sequence使用的限制
在使用序列的currval和nextval時的限制
建立一個序列
create sequence test_seq
minvalue 1
maxvalue 10000000
start with 1
increment by 1
cache 20;
在delete,select,update語句的子查詢中不能使用sequence的值
SQL> delete from test_jy where test_id
delete from test_jy where test_id
ORA-02287: 此處不允許序號
SQL> select * from test_jy where test_id
select * from test_jy where test_id
ORA-02287: 此處不允許序號
SQL> update test_jy set test_id=0 where test_id
update test_jy set test_id=0 where test_id
ORA-02287: 此處不允許序號
在查詢檢視或物化檢視時
SQL> select a.* from test_v a where a.userid
select a.* from test_v a where a.userid
ORA-02287: 此處不允許序號
帶有distinct操作符的select語句不能使用
SQL> select distinct a.*,test_seq.currval from test_v a ;
select distinct a.*,test_seq.currval from test_v a
ORA-02287: 此處不允許序號
有group by,order by操作的select語句不能使用
SQL> select test_jy.*,test_seq.currval from test_jy group by test_jy.test_id;
select test_jy.*,test_seq.currval from test_jy group by test_jy.test_id
ORA-02287: 此處不允許序號
SQL> select test_jy.*,test_seq.currval from test_jy order by test_jy.test_id;
select test_jy.*,test_seq.currval from test_jy order by test_jy.test_id
ORA-02287: 此處不允許序號
有UNION, INTERSECT, MINUS操作符的語句不能使用
SQL> select test_jy.*,test_seq.currval from test_jy where test_id=1
2 union
3 select test_jy.*,test_seq.currval from test_jy where test_id=2;
select test_jy.*,test_seq.currval from test_jy where test_id=1
union
select test_jy.*,test_seq.currval from test_jy where test_id=2
ORA-02287: 此處不允許序號
SQL> select test_jy.*,test_seq.currval from test_jy where test_id=1
2 intersect
3 select test_jy.*,test_seq.currval from test_jy where test_id=2;
select test_jy.*,test_seq.currval from test_jy where test_id=1
intersect
select test_jy.*,test_seq.currval from test_jy where test_id=2
ORA-02287: 此處不允許序號
SQL> select test_jy.*,test_seq.currval from test_jy where test_id=1
2 minus
3 select test_jy.*,test_seq.currval from test_jy where test_id=2;
select test_jy.*,test_seq.currval from test_jy where test_id=1
minus
select test_jy.*,test_seq.currval from test_jy where test_id=2
ORA-02287: 此處不允許序號
在select語句中的where子句中
SQL> select test_jy.* from test_jy where test_id
select test_jy.* from test_jy where test_id
ORA-02287: 此處不允許序號
在create table或alter table語句的中default值是不能使用sequence
SQL> alter table test_jy modify test_id number(20) default test_seq.currval;
alter table test_jy modify test_id number(20) default test_seq.currval
ORA-00984: 列在此處不允許
還有就在check約束中不能使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-751448/,如需轉載,請註明出處,否則將追究法律責任。
上一篇:
檢視錶空間及檔案大小的語句
下一篇:
ora_rowscn偽列的用途
請登入後發表評論
登入
全部評論
相關文章
- 在Hibernate中關於Oracle sequence的使用KHOracle
- oracle的scn及sequenceOracle
- ORACLE SEQUENCE用法Oracle
- Oracle中Nextval用法SEQUENCE與SYS_GUID()OracleGUI
- 不同於Oracle:SEQUENCE的區別Oracle
- Oracle中left join中右表的限制條件Oracle
- [20220321]探究oracle sequence.txtOracle
- [20220322]探究oracle sequence 2.txtOracle
- mysql中雜湊索引的使用限制MySql索引
- Oracle 限制業務使用者自身修改密碼Oracle密碼
- sequence to sequence模型模型
- [20190530]ORACLE 18c - ALTER SEQUENCE RESTART.txtOracleREST
- 使用Timekpr-nExt限制Linux中每個賬戶的使用Linux
- Oracle中job的使用詳解Oracle
- ORACLE中%TYPE和%ROWTYPE的使用Oracle
- Oracle中Decode()函式的使用Oracle函式
- uvm的sequence
- 使用sequence作為多區域部署的id
- 【Rust】使用HashMap解決官方文件中的閉包限制RustHashMap
- Kubernetes中如何使用CPU請求和限制? - daniele
- [譯]Kotlin中的龜(List)兔(Sequence)賽跑Kotlin
- 關於Oracle 10g ASM磁碟大小的限制Oracle 10gASM
- Oracle資料庫限制訪問IPOracle資料庫
- 看板中的WIP限制思想
- Nodejs 中的 API 速率限制NodeJSAPI
- python3類中的Cat變數使用有限制嗎?Python變數
- 使用 Proxy 突破網管的限制
- Oracle的過載保護-資料庫資源限制Oracle資料庫
- 如何限制ip訪問Oracle資料庫Oracle資料庫
- 【TUNE_ORACLE】Oracle資料庫與HugePages(二)HugePages配置和限制Oracle資料庫
- Sequence recognition
- win10系統下遠端桌面功能被限制如何使用CredSSP加密OracleWin10加密Oracle
- 【PRODUCE】Oracle 通過儲存過程限制使用者訪問表資料Oracle儲存過程
- MySQL Index Condition Pushdown(ICP)的使用限制MySqlIndex
- Laravel API 速率限制器的使用LaravelAPI
- 在oracle中監視索引的使用情況Oracle索引
- 在JPA中請優先使用sequence策略生成實體識別符號的值 - Vlad Mihalcea符號
- 【PRODUCE】Oracle 通過儲存過程限制使用者訪問表資料(二)Oracle儲存過程
- sequence:從認識到會使用,今兒給你講的透透的