文件首頁
MySQL NDB Cluster API 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.6 ForeignKey 類別

本節提供關於 ForeignKey 類別的資訊,此類別對 NDB 資料表上的外部索引鍵進行建模。

ForeignKey 類別概述

父類別

Object

子類別

.

方法

下表列出 ForeignKey 類別的公用方法,以及每個方法的目的或用途

表 2.20 ForeignKey 類別方法與描述

名稱 描述
ForeignKey() 類別建構函式
~ForeignKey() 類別解構函式
getName() 取得外部索引鍵的名稱
getParentTable() 取得外部索引鍵的父資料表
getChildTable() 取得外部索引鍵的子資料表
getParentColumnCount() 取得父資料表中的資料行數
getChildColumnCount() 取得子資料表中的資料行數
getParentColumnNo() 取得父資料表中的資料行號碼
getChildColumnNo() 取得子資料表中的資料行號碼
getParentIndex() 若索引鍵指向父資料表的主索引鍵,則傳回 0
getChildIndex() 若使用子資料表的主索引鍵解析子參考,則傳回 0
getOnUpdateAction() 取得外部索引鍵的更新動作 (FkAction)
getOnDeleteAction() 取得外部索引鍵的刪除動作 (FkAction)
setName() 設定外部索引鍵的名稱
setParent() 設定外部索引鍵的父資料表
setChild() 設定外部索引鍵的子資料表
setOnUpdateAction() 設定外部索引鍵的更新動作 (FkAction)
setOnDeleteAction() 設定外部索引鍵的刪除動作 (FkAction)
getObjectStatus() 取得物件狀態
getObjectId() 取得物件 ID
getObjectVersion() 取得物件版本

類型

ForeignKey 類別有一個公用類型,即 FkAction 類型。

ForeignKey()

描述

建立全新的外部索引鍵參考,或是現有外部索引鍵參考的複本。

簽名

新執行個體

ForeignKey
    (
      void
    )

複製建構函式

ForeignKey
    (
      const ForeignKey&
    )
參數

對於新執行個體:

對於複製建構函式:現有 ForeignKey 執行個體的參考。

傳回值

ForeignKey 的新執行個體。

ForeignKey::FkAction

本節提供關於 FkAction 的資訊,此為一個列舉,針對在父資料表上執行更新或刪除作業時,對外部索引鍵的參考動作進行建模。

列舉值

下表顯示可能的值,以及對應的參考動作

表 2.21 ForeignKey::FkAction 資料類型的值與描述

名稱 描述
NoAction NO ACTION:延遲檢查。
Restrict RESTRICT:拒絕在父資料表上執行作業。
Cascade CASCADE:對父資料表中的資料列執行作業;對子資料表中相符的資料列執行相同作業。
SetNull SET NULL:對父資料表中的資料列執行作業;將子資料表中任何相符的外部索引鍵資料行設定為 NULL
SetDefault SET DEFAULT:目前在 NDB Cluster 中不支援。

另請參閱 MySQL 手冊中的外部索引鍵限制

ForeignKey::getName()

描述

擷取呼叫此方法的 ForeignKey 執行個體的名稱。

簽名
const char* getName
    (
      void
    ) const
參數

.

傳回值

ForeignKey 的名稱。

ForeignKey::getParentTable()

描述

擷取呼叫此方法的 ForeignKey 執行個體的父資料表。

簽名
const char* getParentTable
      (
        void
      ) const
參數

.

傳回值

指向 ForeignKey 父資料表的指標。

ForeignKey::getChildTable()

描述

擷取呼叫此方法的 ForeignKey 執行個體的子資料表。

簽名
const char* getChildTable
      (
        void
      ) const
參數

.

傳回值

指向此 ForeignKey 子資料表的指標。

ForeignKey::getParentColumnCount()

描述

擷取此 ForeignKey 父資料表中的資料行數。

簽名
unsigned getParentColumnCount
      (
        void
      ) const
參數

.

傳回值

父資料表中的資料行數。

ForeignKey::getChildColumnCount()

描述

擷取此 ForeignKey 子資料表中的資料行數。

簽名
unsigned getChildColumnCount
      (
        void
      ) const
參數

.

傳回值

子資料表中的資料行數。

ForeignKey::getParentIndex()

描述

如果子資料表參照父資料表的主索引鍵,則傳回 0。

簽名
const char* getParentIndex
    (
      void
    ) const
參數

.

傳回值

請參閱說明。

ForeignKey::getChildIndex()

描述

如果子參照是使用子資料表的主索引鍵解析的,則傳回 0。

簽名
const char* getChildIndex
    (
      void
    ) const
參數

.

傳回值

請參閱說明。

ForeignKey::getParentColumnNo()

描述

此方法會取得指定索引的父資料表中外鍵欄位的序號。關於在 NDB API 中處理欄位的資訊,請參閱 Column::getColumnNo() 的文件。

簽名
int getParentColumnNo
    (
      unsigned no
    ) const
參數

.

傳回值

欄位的序號。

ForeignKey::getChildColumnNo()

描述

此方法會取得指定索引的子資料表中外鍵欄位的序號。關於在 NDB API 中處理欄位的資訊,請參閱 Column::getColumnNo() 的文件。

簽名
int getChildColumnNo
    (
      unsigned no
    ) const
參數

.

傳回值

欄位的序號。

ForeignKey::getOnUpdateAction()

描述

取得外鍵的 ON UPDATE 動作。這是一個 ForeignKey::FkAction,且具有下列其中一個值:NoActionRestrictCascadeSetNull

簽名
FkAction getOnUpdateAction
    (
      void
    ) const
參數

.

傳回值

欄位的序號。

ForeignKey::getOnDeleteAction()

描述

取得外鍵的 ON DELETE 動作。這是一個 ForeignKey::FkAction,且具有下列其中一個值:NoActionRestrictCascadeSetNull

簽名
FkAction getOnDeleteAction
    (
      void
    ) const
參數

.

傳回值

欄位的序號。

ForeignKey::setName()

描述

設定呼叫此方法的 ForeignKey 實例的名稱。

簽名
void setName
    (
      const char*
    )
參數

ForeignKey 的名稱。

傳回值

.

ForeignKey::setParent()

描述

設定 ForeignKey 的父資料表,可提供資料表的參考,以及選擇性地提供一個索引來作為外鍵。

簽名
void setParent
    (
      const Table&,
      const Index* index = 0,
      const Column* cols[] = 0
    )
參數

一個 Table 的參考 (必要)。選擇性地,可以使用指定的欄位或多個欄位的索引。

傳回值

.

ForeignKey::setChild()

描述

設定 ForeignKey 的子資料表,可提供資料表的參考,以及選擇性地提供一個索引來作為外鍵。

簽名
void setChild
    (
      const Table&,
      const Index* index = 0,
      const Column* cols[] = 0
    )
參數

一個 Table 的參考 (必要)。選擇性地,可以使用指定的欄位或多個欄位的索引。

傳回值

.

ForeignKey::setOnUpdateAction()

描述

設定外鍵的 ON UPDATE 動作。

簽名
void setOnUpdateAction
  (
    FkAction
  )
參數

要執行的 ON UPDATE 動作。這必須是一個 ForeignKey::FkAction,其值必須是 NoActionRestrictCascadeSetNull 其中之一。

傳回值

ForeignKey::setOnDeleteAction()

描述

設定外鍵的 ON DELETE 動作。

簽名
void setOnUpdateAction
  (
    FkAction
  )
參數

要執行的 ON UPDATE 動作,類型為 ForeignKey::FkAction。必須是 NoActionRestrictCascadeSetNull 其中之一的值。

傳回值

ForeignKey::getObjectStatus()

描述

取得此 ForeignKey 物件的物件狀態 (請參閱 Object::Status)。

簽名
virtual Object::Status getObjectStatus
    (
      void
    ) const
參數

.

傳回值

ForeignKey 物件的狀態,以 Object::Status 類型的值表示。請參閱此類型的文件,以了解可能的值及其解釋。

ForeignKey::getObjectId()

描述

取得此 ForeignKey 物件的物件 ID (請參閱 Object::getObjectId())。

簽名
virtual int getObjectId
    (
      void
    ) const
參數

.

傳回值

Object::getObjectId() 傳回的 ForeignKey 物件 ID。

ForeignKey::getObjectVersion()

描述

取得此 ForeignKey 物件的物件版本 (請參閱 Object::getObjectVersion())。

簽名
virtual int getObjectVersion
    (
      void
    ) const
參數

.

傳回值

Object::getObjectVersion() 傳回的 ForeignKey 物件的版本號碼 (整數)。