當前位置:首頁 » 操作系統 » 資料庫同義詞

資料庫同義詞

發布時間: 2023-10-27 23:53:39

資料庫裡面同義詞、序列是什麼東西

這個應該是oracle里的吧?

同義詞 synonym
相當於alias(別名),比如把user1.table1在user2中建一個同義詞table1
create synonym table1 for user1.table1;
這樣當你在user2中查select * from table1時就相當於查select * from user1.table1;

序列比較復雜,

在oracle中sequence就是所謂的序列號,每次取的時候它會自動增加,一般用在需要按序列號排序的地方。
1、Create Sequence
你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE許可權,
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加幾個
START WITH 1 -- 從1開始計數
NOMAXVALUE -- 不設置最大值
NOCYCLE -- 一直累加,不循環
CACHE 10;

一旦定義了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的當前值
NEXTVAL=增加sequence的值,然後返回 sequence 值
比如:
emp_sequence.CURRVAL
emp_sequence.NEXTVAL

可以使用sequence的地方:
- 不包含子查詢、snapshot、VIEW的 SELECT 語句
- INSERT語句的子查詢中
- NSERT語句的VALUES中
- UPDATE 的 SET中

可以看如下例子:
INSERT INTO emp VALUES
(empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

SELECT empseq.currval FROM DUAL;

㈡ oracle資料庫中循環同義詞,怎麼處理

1、 當用程序連接或者用plsql查詢同義詞時,如果出現ora-01775:同義詞的循環鏈這樣的問題。
一般是因為存在同義詞,但同義詞沒有相應的對象。

2、 先查有沒有循環的同義詞。
select * from dba_synonyms
where table_owner='TEST'
and synonym_name<>table_name;

沒有記錄。

3、 再查同義詞沒有對象的資料庫對象
select * from dba_synonyms
where table_owner='TEST'
and
synonym_name in
(select a.synonym_name from dba_synonyms a where a.table_owner='TEST'
minus
select object_name from user_objects)

4、 把查詢出來的結果進行查詢表
select * from DRILL_PRESON
如果該同義詞沒有相應的對象,則會包ora-01775的錯誤

5、 把這個同義詞刪除
drop public synonym DRILL_PRESON

熱點內容
oracle資料庫實例 發布:2025-09-16 20:23:04 瀏覽:554
java實習心得體會 發布:2025-09-16 20:06:46 瀏覽:585
outlook2010郵件加密 發布:2025-09-16 19:56:00 瀏覽:421
安卓開發公司哪個好 發布:2025-09-16 19:44:55 瀏覽:543
java編譯項目 發布:2025-09-16 19:39:15 瀏覽:557
python爬蟲數據分析 發布:2025-09-16 19:04:15 瀏覽:537
安卓錄屏大師怎麼直播 發布:2025-09-16 18:51:52 瀏覽:933
電腦怎麼解壓文件步驟 發布:2025-09-16 18:32:10 瀏覽:395
編譯器默認構造函數內聯 發布:2025-09-16 18:30:40 瀏覽:265
密碼忘了怎麼改 發布:2025-09-16 18:29:54 瀏覽:165