全部產品
Search
文件中心

ApsaraDB for OceanBase (Deprecated):建立同義字

更新時間:Aug 10, 2024

概述

同義字是資料庫目前使用者通過給另外一個使用者的對象建立一個別名,可以通過對別名進行查詢和操作,從而直接操作該資料庫物件。

同義字類似於視圖功能,支援對錶進行增刪改查。OceanBase 資料庫物件如表、視圖、函數、預存程序、序列、程式包、同義字等,資料庫管理員均可以根據實際情況為其定義同義字。

同義字擴充了資料庫的使用範圍,能夠在不同的資料庫使用者之間實現無縫互動。經常用於簡化對象訪問和提高對象訪問的安全性。

同義字類型

同義字類型包括普通同義字和公用同義字。

  • 普通同義字:普通使用者建立的同義字一般都是私人同義字,普通同義字只能目前使用者可以訪問,其他使用者僅在授權後才可訪問,目前使用者具有建立同義字許可權。

  • 公用同義字:一般由具有 DBA 角色(如:system)的使用者建立,所有使用者都可以訪問。

具體請參考 OceanBase 資料庫

建立同義字

如上圖所示,建立同義字包含以下 8 個步驟:

1. 指定同義字名稱

  1. 指定對象所有者

  2. 指定物件類型

  3. 指定對象名稱

  4. 指定同義字類型

  5. 確定建立同義字

  6. 編輯同義字

  7. 完成建立同義字

本文檔以在 ODC 中建立員工表同義字(syn_employee)為例,對 SYS 資料庫中的 employee 表建立同義字 syn_employee。

說明

文中所使用的均為樣本資料,您可根據實際情況對資料進行替換。

操作步驟

步驟一:指定同義字名稱

在 OceanBase 開發人員中心(OceanBase Developer Center,ODC)單擊串連名進入串連後,在左導覽列中單擊 同義字 標籤可以查看同義字列表,同義字列表按類型分為普通同義字列表和公用同義字列表。在同義字列表的右上方,單擊 + 建立同義字,或是在 ODC 上方導覽列中單擊 建立 > 同義字 以建立所需對象。

建立同義字 中,指定同義字名稱。

image.png

步驟二:指定對象所有者

指定所屬 Schema。

步驟三:指定物件類型

指定物件類型:表或者視圖。

步驟四:指定對象名稱

指定所建立同義字對應的對象名稱。

步驟五:指定同義字類型

指定同義字類型:普通同義字或者公用同義字。

步驟六:確定建立同義字

單擊 下一步:確定 SQL,進入 SQL 建立確認頁面。

步驟七:編輯同義字

image.png

在 SQL 建立確認頁面,編輯同義字語句。

同時,在編輯頁面的工具列中提供了以下功能鍵:

功能

說明

格式化

單擊該按鈕對選中的 SQL 陳述式或當前 SQL 視窗中的所有 SQL 陳述式進行統一的格式化(縮排、換行和高亮關鍵字等操作)。

尋找/替換

在尋找框內輸入內容以對指令碼進行檢索,尋找後可在替換框內輸入內容以對尋找內容進行替換。

撤銷

將指令碼回退到上一步操作執行的結果。

重做

執行 撤銷 操作後,對指令碼重新執行撤銷前的操作。

大小寫

提供 全部大寫全部小寫首字母大寫 三種效果,為指令碼中選中的語句轉換為對應形式。

縮排

提供 添加縮排刪除縮排 兩種效果,為指令碼中選中的語句添加或刪除包含的縮排。

注釋

提供 添加註釋刪除注釋 兩種效果,將指令碼中選中的語句轉換為注釋或轉換為 SQL 陳述式。

IN 值轉化

可以將如 A B 的格式轉化為 ('A','B') 的格式。

在語句編輯頁面中會根據在 建立同義字 彈窗中指定的資訊產生對應的同義字定義語句,使用者需要直接修改語句。

使用者可以在 SQL 建立確認頁面編輯建立的同義字語句。文法格式如下:

CREATE OR REPLACE SYNONYM syn_name FOR schema_name.object_name;

參數說明:

參數

說明

OR REPLACE

建立同義字時,如同義字存在則更新。

syn_name

同義字的名稱。

普通同義字名稱在某個 Schema 下必須是唯一的。

schema_name

指定對象所屬的資料庫 Schema。

object_name

指定對象名稱。

步驟八:完成建立同義字

確認語句後,單擊頁面右上方的 建立 按鈕,完成同義字的建立。同義字建立後不支援修改。

image.png

說明

在左側導覽列中,右鍵按一下滑鼠類型列表中的類型名,通過彈出的管理巨集指令清單(包括 查看建立刪除下載重新整理),可快速管理和操作目標對象。更多詳情請參見 管理同義字常用功能簡介

文法格式:

SELECT * FROM syn_name ([syn_parameter[,…])

樣本:

SELECT * FROM syn_employee;

image.png

相關資訊