Oracle Sequence & Synonym
?
??? 接著昨天的,今天繼續來了解一下Oracle的Sequence和Synonym這兩個部件。基本上來說,搞定這兩個,Oracle中的相關Object類型都學習得七七八八了(除了PLSQL上的那幾種類型)。從細分上來說,那是屬于Oracle Developer的事情了,不屬于DBA管。好了,這兩個類型的object都比較簡單,所以就簡單得介紹一下:
?
一、序列 Sequence
?
??? 1、序列的創建
?
??? create sequence emp_sequece
??? increment by 1 --每次增長數
??? start with 1 --開始數
??? nomaxvalue --最大限制
??? cache 10; --預緩存數量
?
??? 2、序列的各個選項意義
?
??? CREATE SEQUENCE [schema.]sequence
??? [INCREMENT BY integer]
??? [START WITH integer]
??? [MAXVALUE integer]|[NOMAXVALUE]
??? [MINVALUE integer]|[NOMINVALUE]
??? [CYCLE]|[NOCYCLE]
??? [CACHE integer]|[NOCACHE]
??? [ORDER]|[NOORDER]
?
??? INCREMENT BY:每次增長的數額,默認為1,如需要遞減序列,則設為負數
??? START WITH:序列開始數值,默認為0
??? MAXVALUE:設置一個序列的最大值,默認為NOMAXVALUE,最大值為10^27
??? MINVALUE:設置一個序列的最小值,默認為NOMINVALUE,最大值為-10^26
??? CYCLE:是否循環,在到達MAXVALUE|MINVALUE后從MINVALUE|MAXVALUE接著開始
??? CACHE:每次存放多少個序號到內存,以提高讀取速度,默認是20
??? ORDER:按指定順序增長,一般用于RAC,單獨實例不需要,默認為NOORDER
?
??? 3、更改序列
?
??? alter sequence emp_sequece
??? ... ...
?
??? 4、刪除序列
?
??? drop sequence emp_sequece;
?
??? 5、數據字典
?
??? dba|all|user_sequences
?
?
二、同義詞 Synonym
?
??? 同義詞是模式中對象的別名,可以屏蔽對象的名稱和擁有著,而且可以方便記憶,并提高了SQL語句的可讀性。
用戶可以對同義詞進行與對象名稱同樣的操作,而且可以分別建立public同義詞和private同義詞。私有同義詞不能與用戶的其他object同名。
?
??? 1、創建同義詞
?
??? create public synonym public_emp for jward.emp;
?
??? 2、刪除同義詞
?
??? drop public synonym public_emp;
?
??? 注意:刪除對象后,相應的同義詞不會自動刪除,需要之后手動查詢。而當刪除同義詞,沒有刪除對象時,相應的對象會失效,需要重新編譯。
?
??? 3、數據字典
?
??? dba|all|user_synonyms
?
??? 通過這個視圖可以看到,所有的synonym還包括了是否使用dblink。
?
?
?