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


2.3.27 Table 類別

本節提供有關 Table 類別的資訊,該類別在 NDB API 中建立資料庫表格模型。

Table 類別概述

父類別

NdbDictionary

子類別

描述

Table 類別表示 NDB Cluster 資料庫中的表格。此類別延伸了 Object 類別,而該類別又是 NdbDictionary 類別的內部類別。

可以使用 NDB API 獨立於 MySQL 伺服器建立表格。但是,通常不建議這樣做,因為以這種方式建立的表格無法被 MySQL 伺服器看到。同樣地,可以使用 Table 方法修改現有表格,但這些變更 (重新命名表格除外) 對 MySQL 不可見。

方法

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

表 2.79 Table 類別方法和描述

名稱 描述
Table() 類別建構函式
~Table() 解構函式
addColumn() 將資料行新增至表格
aggregate() 計算表格的彙總資料
equal() 將表格與另一個表格比較
getColumn() 從表格中取得資料行 (依名稱)
getDefaultNoPartitionsFlag() 檢查是否正在使用預設分割區數目
getFragmentCount() 取得此表格的片段數目
getExtraMetadata() 取得此表格的額外中繼資料
getForceVarPart() 表格是否強制配置可變部分
getFragmentData() 取得表格片段資料 (ID、狀態和節點群組)
getFragmentDataLen() 取得表格片段資料的長度
getFragmentNodes() 取得片段所在資料節點的 ID
getFragmentType() 取得表格的 FragmentType
getFrmData() 從表格 .FRM 檔案取得資料;在 NDB 8.0.27 中已棄用
getFrmLength() 取得表格 .FRM 檔案的長度;在 NDB 8.0.27 中已棄用
getHashMap() 取得表格的雜湊對應。
getKValue() 取得表格的 KValue
getLinearFlag() 取得表格線性雜湊旗標的目前設定
getLogging() 檢查是否已為此表格啟用磁碟記錄
getMaxLoadFactor() 取得表格的最大負載因數
getMaxRows() 取得此表格可能包含的最大資料列數
getMinLoadFactor() 取得表格的最小負載因數
getMinRows() 取得表格中的最小資料列數 (用於計算分割區)
getName() 取得表格的名稱
getNoOfAutoIncrementColumns() 取得表格中自動遞增資料行的數目
getNoOfColumns() 取得表格中的資料行數目
getNoOfPrimaryKeys() 取得表格主鍵中的欄位數量
getObjectId() 取得表格的物件 ID
getObjectStatus() 取得表格的物件狀態
getObjectType() 已在 NDB 7.5.0 中移除 (Bug #47960, Bug #11756088)
getObjectVersion() 取得表格的物件版本
getPartitionBalance() 取得用於此表格的分割區平衡(片段計數類型)(NDB 7.5 及更新版本)
getPartitionBalanceString() 以字串形式取得用於此表格的分割區平衡(NDB 7.5 及更新版本)
getPartitionId() 從雜湊值取得分割區 ID
getPrimaryKey() 取得表格主鍵的名稱
getRangeListData() 取得 RANGELIST 陣列
getRangeListDataLen() 取得表格 RANGELIST 陣列的長度
getRowChecksumIndicator() 檢查是否已設定資料列總和檢查碼指示器
getRowGCIIndicator() 檢查是否已設定資料列 GCI 指示器
getRowGCIIndicator() 檢查是否已設定資料列 GCI 指示器
getRowSizeInBytes() 以位元組為單位取得此表格的資料列大小
getSingleUserMode() 取得此表格的 SingleUserMode
getTableId() 取得表格的 ID
getTablespace() 取得包含此表格的表格空間
getTablespaceData() 取得包含表格的表格空間的 ID 和版本
getTablespaceDataLen() 取得表格表格空間資料的長度
getTablespaceNames() 取得表格片段中使用的表格空間名稱
hasDefaultValues() 判斷表格是否有任何欄位使用預設值
setDefaultNoPartitionsFlag() 切換是否應為表格使用預設分割區數量
setExtraMetadata() 設定此表格的額外中繼資料
setForceVarPart() 強制表格配置可變部分
getFragmentCount() 取得此表格的片段數目
setFragmentData() 設定片段 ID、節點群組 ID 和片段狀態
setFragmentType() 設定表格的 FragmentType
setFrm() 設定要用於此表格的 .FRM 檔案;在 NDB 8.0.27 中已棄用
setHashMap() 設定表格的雜湊映射。
setKValue() 設定 KValue
setLinearFlag() 設定表格的線性雜湊旗標
setLogging() 切換表格到磁碟的記錄
setMaxLoadFactor() 設定表格的最大負載因子 (MaxLoadFactor)
setMaxRows() 設定表格中的最大資料列數
setMinLoadFactor() 設定表格的最小負載因子 (MinLoadFactor)
setPartitionBalance() 設定此表格的分割區平衡(片段計數類型)(NDB 7.5 及更新版本)
setName() 設定表格的名稱
setObjectType() 已在 NDB 7.5.0 中移除 (Bug #47960, Bug #11756088)
setRangeListData() 設定 LISTRANGE 分割區資料
setRowChecksumIndicator() 設定資料列總和檢查碼指示器
setRowGCIIndicator() 設定資料列 GCI 指示器
setSingleUserMode() 設定此表格的 SingleUserMode
setStatusInvalid()
setTablespace() 設定要用於此表格的表格空間
setTablespaceData() 設定表格空間 ID 和版本
setTablespaceNames() 設定片段的表格空間名稱
validate() 在建立新表格之前驗證其定義

類型

Table 類別定義單一公用類型 SingleUserMode

此類別的賦值 (=) 運算子已多載,因此它始終執行深層複製。

與其他資料庫物件一樣,使用 NDB API 完成的 Table 物件建立和對現有表格的屬性變更,在 MySQL 中是不可見的。例如,如果您使用 Table::addColumn() 將新欄位新增至表格,則 MySQL 無法看到新欄位。關於表格,此規則的唯一例外是使用 Table::setName() 變更現有 NDB 表格的名稱,這在 MySQL 中是可見的。

計算表格大小。計算資料儲存時,應加上所有屬性的大小(每個屬性至少耗用 4 個位元組),以及 12 個位元組的額外負荷。可變大小的屬性大小為 12 個位元組加上實際資料儲存部分,以及基於可變部分大小的額外負荷。例如,假設一個表格有 5 個屬性:一個 64 位元屬性、一個 32 位元屬性、兩個 16 位元屬性和一個包含 64 個 8 位元屬性的陣列。此表格每個記錄耗用的記憶體量是以下各項的總和:

  • 64 位元屬性 8 個位元組

  • 32 位元屬性 4 個位元組

  • 兩個 16 位元屬性 8 個位元組,由於向右對齊,每個都佔用 4 個位元組

  • 陣列 64 個位元組(每個陣列元素 64 * 1 個位元組)

  • 12 個位元組的額外負荷

每個記錄總計 96 個位元組。此外,您應假設大約 2% 的額外負荷用於配置頁首和浪費空間。因此,100 萬個記錄應耗用 96 MB,而額外的頁首和其他額外負荷約為 2 MB。向上捨入產生 100 MB。

Table::addColumn()

描述

將欄位新增至表格。

簽章
void addColumn
    (
      const Column& column
    )
參數

要新增至表格的欄位參考。

傳回值

此方法的回傳類型為 void,但它會建立原始 Column 物件的副本。

Table::aggregate()

描述

此方法會計算表格的彙總資料。必須先執行此方法,getNoOfPrimaryKeys() 等彙總方法才能正常運作,然後才能建立表格並透過 getTableId() 擷取表格。

簽章
int aggregate
    (
      struct NdbError& error
    )
參數

NdbError 物件的參考。

傳回值

整數,如果成功,則值為 0,如果表格處於不一致的狀態,則值為 -1。在後者的情況下,也會設定 error

Table 建構函式

描述

建立 Table 執行個體。Table 建構函式有兩個版本,一個用於建立新執行個體,另一個用於複製建構函式。

使用此方法在 NDB API 中建立的表格無法從 MySQL 存取。

簽章

新執行個體

Table
    (
      const char* name = ""
    )

複製建構函式

Table
    (
      const Table& table
    )
參數

對於新執行個體,這是要建立的表格名稱。對於複製,這是要複製的表格參考。

傳回值

Table 物件。

解構函式
virtual ~Table()

Table::equal()

描述

此方法用於比較 Table 的一個執行個體與另一個執行個體。

簽章
bool equal
    (
      const Table& table
    ) const
參數

要與目前執行個體比較的 Table 物件參考。

傳回值

如果兩個表格相同,則為 true,否則為 false

Table::getColumn()

描述

此方法用於取得欄位定義,並提供欄位的索引或名稱。

簽章

此方法可以使用欄位 ID 或欄位名稱來叫用,如此處所示

Column* getColumn
    (
      const int AttributeId
    )

Column* getColumn
    (
      const char* name
    )
參數

以下之一:欄位在表格中的索引(如同欄位的 getColumnNo() 方法傳回),或欄位的名稱。

傳回值

具有指定索引或名稱的欄位指標。如果沒有這樣的欄位,則此方法會傳回 NULL

Table::getDefaultNoPartitionsFlag()

描述

此方法用於找出表格是否使用預設的分割區數量。

簽章
Uint32 getDefaultNoPartitionsFlag
    (
      void
    ) const
參數

.

傳回值

32 位元不帶正負號的整數。

Table::getExtraMetadata()

描述

取得並解壓縮此表格的額外中繼資料。

此方法是在 NDB 8.0 中新增的。

簽章
int getExtraMetadata
    (
      Uint32& version,
      void** data,
      Uint32* length
    ) const
參數

此方法採用以下三個參數

  • version:按照慣例,如 NDB Cluster 程式碼中所用,1 表示額外中繼資料包含如 NDB 7.6 及更早版本中的 .frm 檔案(Blob 資料);2 表示它是如 NDB 8.0 中的序列化字典資訊。這些值實際上是任意的,且與應用程式相關。

  • data:以中繼資料擷取的已儲存資料。

  • length:已儲存資料(中繼資料)的長度。

傳回值

如果成功,則傳回 0,如果失敗,則傳回任何其他值。非零值應解譯為錯誤類型的錯誤碼。

Table::getForceVarPart()

描述

無論表格實際上是否有任何可變大小的欄位,表格是否強制配置可變大小的部分。這是為了允許後續將欄位線上新增至表格(請參閱使用 NDB Cluster 中的 ALTER TABLE 進行線上作業)。

簽章
bool getForceVarPart
    (
      void
    ) const
參數

.

傳回值

當強制表格配置可變大小的部分時為 true

Table::getFragmentCount()

描述

此方法會取得表格中的片段數量。

簽章
Uint32 getFragmentCount
    (
      void
    ) const
參數

.

傳回值

表格片段數量,為 32 位元不帶正負號的整數。

Table::getFragmentData()

描述

此方法會取得表格的片段資料(ID、狀態和節點群組)。

簽章
const void* getFragmentData
    (
      void
    ) const
參數

.

傳回值

要讀取的資料指標。

Table::getFragmentDataLen()

描述

以位元組為單位取得要讀取的表格片段資料的長度。

簽章
Uint32 getFragmentDataLen
    (
      void
    ) const
參數

.

傳回值

要讀取的位元組數,為 32 位元不帶正負號的整數。

Table::getFragmentNodes()

描述

此方法會擷取儲存指定片段的節點清單。

簽章
Uint32 getFragmentNodes
    (
      Uint32 fragmentId,
      Uint32* nodeIdArrayPtr,
      Uint32 arraySize
    ) const
參數

此方法採用以下三個參數

  • fragmentId:所需片段的 ID。

  • nodeIdArrayPtr:包含此片段的節點的節點 ID 陣列指標。

    注意

    通常,主要片段是此陣列中的項目 0。

  • arraySize:包含節點 ID 的陣列大小。如果此值小於片段數,則只會將前 arraySize 個項目寫入此陣列。

傳回值

傳回值 0 表示錯誤;否則,這是表格片段數量,為 32 位元不帶正負號的整數。

Table::getFragmentType()

描述

此方法會取得表格的片段類型。

簽章
FragmentType getFragmentType
    (
      void
    ) const
參數

.

傳回值

Object::FragmentType 值。

Table::getFrmData()

注意

此功能已棄用,應避免使用。它可能會在 NDB Cluster 的未來版本中移除。

描述

從與表格相關聯的 .FRM 檔案取得資料。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM 檔案,而是使用 MySQL 資料字典來儲存表格中繼資料;因此,從 NDB 8.0.27 開始,此方法已被棄用,並可能在未來的 NDB 版本中移除。若要讀取和寫入表格中繼資料,請改用 getExtraMetadata()setExtraMetadata()

簽章
const void* getFrmData
    (
      void
    ) const
參數

.

傳回值

指向 .FRM 資料的指標。

Table::getFrmLength()

注意

此功能已棄用,應避免使用。它可能會在 NDB Cluster 的未來版本中移除。

描述

取得表格 .FRM 檔案資料的長度(以位元組為單位)。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM 檔案,而是使用 MySQL 資料字典來儲存表格中繼資料;因此,從 NDB 8.0.27 開始,此方法已被棄用,並可能在未來的 NDB 版本中移除。若要讀取和寫入表格中繼資料,請改用 getExtraMetadata()setExtraMetadata()

簽章
Uint32 getFrmLength
    (
      void
    ) const
參數

.

傳回值

.FRM 檔案資料的長度(一個無號 32 位元整數)。

Table::getHashMap()

描述

取得用於此表格的雜湊映射。

簽章
bool getHashMap
    (
      Uint32* id = 0,
      Uint32* version = 0
    ) const
參數

表格 ID 和版本。

傳回值

如果表格具有雜湊映射,則為 True,否則為 False。

Table::getKValue()

描述

此方法取得 KValue,這是一個雜湊參數,目前限制為值 6。在未來的版本中,可能會將此參數設定為其他值。

簽章
int getKValue
    (
      void
    ) const
參數

.

傳回值

一個整數(目前總是 6)。

Table::getLinearFlag()

描述

此方法擷取表格線性雜湊旗標的值。

簽章
bool getLinearFlag
    (
      void
    ) const
參數

.

傳回值

如果設定了旗標,則為 true,否則為 false

Table::getLogging()

描述

此類別用於檢查表格是否記錄到磁碟上,也就是說,它是永久表格還是暫時表格。

簽章
bool getLogging
    (
      void
    ) const
參數

.

傳回值

傳回布林值。如果此方法傳回 true,則會在表格上執行完整檢查點和記錄。如果傳回 false,則表格為暫時表格,且不會記錄到磁碟上;在系統重新啟動時,表格仍然存在並保留其定義,但它將會是空的。預設記錄值為 true

Table::getMaxLoadFactor()

描述

此方法傳回當本機雜湊表中的容器開始分割時的載入因數(一個雜湊參數)。

簽章
int getMaxLoadFactor
    (
      void
    ) const
參數

.

傳回值

一個最大值為 100 的整數。當傳回最大值時,表示已最佳化記憶體使用量。較小的值表示每個容器中儲存的資料較少,這表示可以更快地找到金鑰,但會消耗更多記憶體。

Table::getMaxRows()

描述

此方法取得表格可以容納的最大列數。這用於計算分割區的數量。

簽章
Uint64 getMaxRows
    (
      void
    ) const
參數

.

傳回值

最大表格列數,以 64 位元無號整數表示。

Table::getMinLoadFactor()

描述

此方法取得開始縮減雜湊表時的載入因數值。這應該始終小於 getMaxLoadFactor() 傳回的值。

簽章
int getMinLoadFactor
    (
      void
    ) const
參數

.

傳回值

以整數表示的百分比;請參閱 Table::getMaxLoadFactor()

Table::getMinRows()

描述

此方法取得表格可以容納的最小列數,用於計算分割區的數量。

簽章
Uint64 getMinRows
    (
      void
    ) const
參數

.

傳回值

最小表格列數,以 64 位元無號整數表示。

Table:getName()

描述

取得表格的名稱。

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

.

傳回值

表格的名稱(字串)。

Table::getNoOfAutoIncrementColumns()

描述

此方法用於取得表格中的自動遞增欄位數。

簽章
int getNoOfAutoIncrementColumns
    (
      void
    ) const
參數

.

傳回值

一個整數,表示表格中自動遞增欄位的數量。

Table::getNoOfColumns()

描述

此方法用於取得表格中的欄位數。

簽章
int getNoOfColumns
    (
      void
    ) const
參數

.

傳回值

一個整數,表示表格中的欄位數。

Table::getNoOfPrimaryKeys()

描述

此方法會找出表格中的主鍵欄位數。

簽章
int getNoOfPrimaryKeys
    (
      void
    ) const
參數

.

傳回值

一個整數,表示表格中的主鍵欄位數。

Table::getObjectId()

描述

此方法取得表格的物件 ID。

簽章
virtual int getObjectId
    (
      void
    ) const
參數

.

傳回值

物件 ID 以整數形式傳回。

Table::getObjectStatus()

描述

此方法取得表格的狀態。

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

.

傳回值

一個 Object::Status 值。

Table::getObjectType() (已過時)

描述

此方法無法按預期運作,並在 NDB 7.5.0 中移除(Bug #47960, Bug #11756088)。

簽章
Object::Type getObjectType
    (
      void
    ) const
參數

.

傳回值

傳回一個 Object::Type 值。

Table::getObjectVersion()

描述

此方法取得表格的物件版本(請參閱 NDB 綱要物件版本)。

簽章
virtual int getObjectVersion
    (
      void
    ) const
參數

.

傳回值

表格的物件版本,以整數表示。

Table::getPartitionBalance()

描述

此方法取得表格的分割區平衡配置(片段計數類型)。

在 NDB 7.5 之前,此方法稱為 getFragmentCountType()

簽章
Object::PartitionBalance getPartitionBalance
    (
      void
    ) const
參數

.

傳回值

分割區平衡配置,作為 Object::PartitionBalance 類型的值。

Table::getPartitionBalanceString()

描述

此方法取得表格的分割區平衡配置(片段計數類型),並將其以字串形式傳回。

在 NDB 7.5 之前,此方法稱為 getFragmentCountTypeString()

簽章
const char* getPartitionBalanceString
    (
      void
    ) const
參數

.

傳回值

分割區平衡配置,作為字串值。

Table::getPartitionId()

描述

給定雜湊值,取得表格分割區 ID。

簽章
Uint32 getPartitionId
    (
      Uint32 hashvalue
    ) const
參數

一個 hashvalue。請注意,如果實際上沒有擷取表格(例如,使用 getTableId()),則結果可能不準確或無用。

傳回值

對應於 hashvalue 的分割區識別碼。

Table::getPrimaryKey()

描述

此方法用於取得表格主鍵的名稱。

簽章
const char* getPrimaryKey
    (
      int no
    ) const
參數

.

傳回值

主鍵的名稱,一個字串(字元指標)。

Table::getRangeListData()

描述

此方法取得與表格相關聯的範圍或清單資料。

簽章
const void* getRangeListData
    (
      void
    ) const
參數

.

傳回值

指向資料的指標。

Table::getRangeListDataLen()

描述

此方法取得表格範圍或清單陣列的大小。

簽章
Uint32 getRangeListDataLen
    (
      void
    ) const
參數

.

傳回值

清單或範圍陣列的長度,以整數表示。

Table::getRowChecksumIndicator()

描述

檢查是否已設定資料列總和檢查碼指示器。

簽章
bool getRowChecksumIndicator
    (
      void
    ) const
參數

.

傳回值

一個 truefalse 值。

Table::getRowGCIIndicator()

描述

檢查是否已設定資料列 GCI 指示器。

簽章
bool getRowGCIIndicator
    (
      void
    ) const
參數

.

傳回值

一個 truefalse 值。

Table::getRowSizeInBytes()

描述

取得此表格中資料列的大小。這是可以儲存在表格單一列中的(最大)資料量,不包括儲存在表格外部的任何 Blob 資料。

簽章
int getRowSizeInBytes
    (
      void
    ) const
參數

.

傳回值

資料列的大小,以位元組為單位。

Table::getSingleUserMode()

描述

取得表格的單一使用者模式。

簽章
enum SingleUserMode getSingleUserMode
    (
      void
    ) const
參數

.

傳回值

一個 SingleUserMode 值。

Table::getTableId()

描述

此方法取得表格的 ID。

簽章
int getTableId
    (
      void
    ) const
參數

.

傳回值

表格 ID,以整數表示。

Table::getTablespace()

描述

此方法以兩種方式使用:取得此表格所指派的表格空間名稱;驗證給定的表格空間是否為此表格使用的表格空間。

簽章

若要取得表格空間的名稱,請不帶任何引數調用

const char* getTablespace
    (
      void
    ) const

若要判斷表格空間是否為給定 ID 和版本所指示的表格空間,請按照此處所示的方式提供這些作為引數

bool getTablespace
    (
      Uint32* id      = 0,
      Uint32* version = 0
    ) const
參數

參數的數量和類型取決於此方法的使用方式

  1. 當用於取得表格使用的表格空間名稱時,會不帶任何引數調用它。

  2. 當用於判斷給定的表格空間是否為此表格使用的表格空間時,則 getTablespace() 會採用兩個參數

    • 表格空間 id,以指向 32 位元無號整數的指標形式給定

    • 表格空間 version,也以指向 32 位元無號整數的指標形式給定

    idversion 的預設值均為 0

傳回值

傳回類型取決於方法的呼叫方式

  1. 當不帶任何引數呼叫 getTablespace() 時,它會傳回 Tablespace 物件執行個體。

  2. 當使用兩個引數呼叫時,如果表格空間與具有指示的 ID 和版本的表格空間相同,則傳回 true;否則,傳回 false

Table::getTablespaceData()

描述

此方法取得表格的表格空間資料(ID 和版本)。

簽章
const void* getTablespaceData
    (
      void
    ) const
參數

.

傳回值

指向資料的指標。

Table::getTablespaceDataLen()

描述

此方法用於取得表格表格空間資料的長度。

簽章
Uint32 getTablespaceDataLen
    (
      void
    ) const
參數

.

傳回值

資料的長度,以 32 位元無號整數表示。

Table::getTablespaceNames()

描述

此方法取得指向表格片段中使用的表格空間名稱的指標。

簽章
const void* getTablespaceNames
    (
      void
    )
參數

.

傳回值

傳回指向表格空間名稱資料的指標。

Table::getTablespaceNamesLen()

描述

此方法取得 getTablespaceNames() 傳回的表格空間名稱資料的長度。(請參閱 Table::getTablespaceNames()。)

簽章
Uint32 getTablespaceNamesLen
    (
      void
    ) const
參數

.

傳回值

以位元組為單位傳回名稱資料的長度,以 32 位元無號整數表示。

Table::hasDefaultValues()

描述

用於判斷表格是否有任何定義了預設值而非 NULL 的欄位。

若要讀取和寫入預設欄位值,請使用 Column::getDefaultValue()Column::setDefaultValue()

簽章
bool hasDefaultValues
    (
      void
    ) const
參數

.

傳回值

如果表格有任何具有預設值而非 NULL 的欄位,則傳回 true,否則傳回 false

Table::setDefaultNoPartitionsFlag()

描述

此方法設定一個指示器,決定是否針對資料表使用預設的分割區數量。

簽章
void setDefaultNoPartitionsFlag
    (
      Uint32 indicator
    ) const
參數

此方法接受一個引數 indicator,一個 32 位元無號整數。

傳回值

.

Table::setExtraMetadata()

描述

儲存此資料表的封裝額外中繼資料。資料會不經任何修改地封裝到給定的 Table 物件的緩衝區中。

於 NDB 8.0 中新增。

簽章
int setExtraMetadata
    (
      Uint32 version,
      const void* data,
      Uint32 length
    )
參數

此方法使用的三個參數列於此處:

  • version:如在 NDB Cluster 程式碼中所使用,1 表示額外中繼資料包含一個 .frm 檔案(blob 資料),如 NDB 7.6 及更早版本;2 表示它是序列化的字典資訊,如 NDB 8.0。您應了解這僅是一種慣例,這些值可以視需要而應用程式特定。

  • data:實際要儲存為中繼資料的資料。

  • length:要儲存的資料長度。

傳回值

成功時傳回 0。任何其他值表示失敗;在這種情況下,該值是一個錯誤碼,表示錯誤的類型。

Table::setForceVarPart()

描述

強制資料表配置可變大小的部分,以便即使資料表沒有可變大小的欄位,也能對資料表執行線上操作。如需有關 NDB Cluster 中線上操作的詳細資訊,請參閱在 NDB Cluster 中使用 ALTER TABLE 進行線上操作

簽章
void setForceVarPart
    (
      bool force
    )
參數

force 設定為 true 以使資料表擁有可變大小的部分時使用。

傳回值

.

Table::setFragmentCount()

描述

設定資料表片段的數量。

簽章
void setFragmentCount
    (
      Uint32 count
    )
參數

count 是用於資料表的片段數量。

傳回值

.

Table::setFragmentData()

描述

此方法寫入一個包含以下片段資訊的陣列:

  • 片段 ID

  • 節點群組 ID

  • 片段狀態

簽章
void setFragmentData
    (
      const void* data,
      Uint32      len
    )
參數

此方法接受以下兩個參數:

  • 要寫入的片段資料指標

  • 此資料的長度 (len),以位元組為單位,為 32 位元無號整數

傳回值

.

Table::setFragmentType()

描述

此方法設定資料表的分散類型。

簽章
void setFragmentType
    (
      FragmentType fragmentType
    )
參數

此方法接受一個引數,即一個 Object::FragmentType 值。

傳回值

.

Table::setFrm()

注意

此功能已棄用,應避免使用。它可能會在 NDB Cluster 的未來版本中移除。

描述

此方法用於將資料寫入此資料表的 .FRM 檔案。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM 檔案,而是使用 MySQL 資料字典來儲存表格中繼資料;因此,從 NDB 8.0.27 開始,此方法已被棄用,並可能在未來的 NDB 版本中移除。若要讀取和寫入表格中繼資料,請改用 getExtraMetadata()setExtraMetadata()

簽章
void setFrm
    (
      const void* data,
      Uint32      len
    )
參數

此方法接受以下兩個引數:

  • 要寫入的 data 指標。

  • 資料的長度 (len)。

傳回值

.

Table::setHashMap()

描述

設定資料表的雜湊映射。

簽章
int setHashMap
    (
      const class HashMap &
    )
參數

雜湊映射的參考。

傳回值

成功時傳回 0;失敗時傳回 -1 並設定錯誤。

Table::setKValue()

描述

此方法設定 KValue,一個雜湊參數。

簽章
void setKValue
    (
      int kValue
    )
參數

kValue 是一個整數。目前唯一允許的值是 6。在未來的版本中,這可能會變成可變參數。

傳回值

.

Table::setLinearFlag()

描述

設定資料表的線性雜湊旗標。請參閱 Table::getLinearFlag()

簽章
void setLinearFlag
    (
      Uint32 flag
    )
參數

flag 是一個 32 位元無號整數。

傳回值

.

Table::setLogging()

描述

切換資料表的記錄狀態。請參閱 Table::getLogging()

簽章
void setLogging
    (
      bool enable
    )
參數

如果 enabletrue,則啟用此資料表的記錄;如果為 false,則停用記錄。

傳回值

.

Table::setMaxLoadFactor()

描述

此方法設定在本機雜湊表中分割容器時的最大負載因子。

簽章
void setMaxLoadFactor
    (
      int max
    )
參數

此方法接受一個參數 max,一個百分比的整數表示法(例如,45 代表 45%)。如需詳細資訊,請參閱 Table::getMaxLoadFactor()

此值永遠不應大於最小負載因子。

傳回值

.

Table::setMaxRows()

描述

此方法設定資料表可容納的最大列數。

簽章
void setMaxRows
    (
      Uint64 maxRows
    )
參數

maxRows 是一個 64 位元無號整數,代表資料表可容納的最大列數。

傳回值

.

Table::setMinLoadFactor()

描述

此方法設定開始縮減雜湊表時的最小負載因子。

簽章
void setMinLoadFactor
    (
      int min
    )
參數

此方法接受一個參數 min,一個百分比的整數表示法(例如,45 代表 45%)。如需詳細資訊,請參閱 Table::getMinLoadFactor()

傳回值

.

Table::setName()

描述

此方法設定資料表的名稱。

這是 Table 中唯一一個其效果對 MySQL 可見的 set*() 方法。

簽章
void setName
    (
      const char* name
    )
參數

name 是資料表的新名稱。

傳回值

.

Table::setObjectType() (已過時)

描述

此方法無法按預期運作,並在 NDB 7.5.0 中移除(Bug #47960, Bug #11756088)。

簽章
void setObjectType
    (
      Object::Type type
    )
參數

所需的物件 type。這必須是 Object::Type 中列出的 Type 值之一。

傳回值

.

Table::setPartitionBalance()

描述

設定資料表的分割區平衡配置。

在 NDB 7.5 之前,此方法稱為 setFragmentCountType()

簽章
void setPartitionBalance
    (
      Object::PartitionBalance scheme
    )
參數

scheme 是用於資料表的分割區平衡配置。這是一個類型為 PartitionBalance 的值。

傳回值

.

Table::setRangeListData()

描述

此方法設定一個陣列,其中包含將範圍值和清單值對應至片段的資訊。這本質上是一個排序的映射,由片段 ID/值對組成。對於範圍分割區,每個片段都有一個配對。對於清單分割區,它可以是任意數量的配對,但至少與片段一樣多的配對。

簽章
void setRangeListData
    (
      const void* data,
      Uint32      len
    )
參數

此方法需要以下兩個參數:

  • 一個指標,指向包含 ID/值配對的範圍或清單 data

  • 此資料的長度 (len),為 32 位元無號整數。

傳回值

.

Table::setRowChecksumIndicator()

描述

設定列總和檢查碼指示器。

簽章
void setRowChecksumIndicator
    (
      bool value
    ) const
參數

一個 truefalse value

傳回值

.

Table::setRowGCIIndicator()

描述

設定列 GCI 指示器。

簽章
void setRowGCIIndicator
    (
      bool value
    ) const
參數

一個 truefalse value

傳回值

.

Table::setSingleUserMode()

描述

為資料表設定 SingleUserMode

簽章
void setSingleUserMode
    (
      enum SingleUserMode
    )
參數

一個 SingleUserMode 值。

傳回值

.

Table::setStatusInvalid()

描述

強制將資料表的狀態設為無效。

簽章
void setStatusInvalid
    (
      void
    ) const
參數

.

傳回值

.

Table::setTablespace()

描述

此方法設定資料表的表空間。

請參閱 第 2.3.28 節,「表空間類別」

簽章

使用表空間的名稱

void setTablespace
    (
      const char* name
    )

使用 Tablespace 物件

void setTablespace
    (
      const class Tablespace& tablespace
    )
參數

此方法可以使用單一引數呼叫,該引數可以是以下兩種類型之一:

  • 表空間的 name(一個字串)。

  • 現有 Tablespace 執行個體的參考。

傳回值

.

Table::setTablespaceData()

描述

此方法設定每個片段的表空間資訊,並包括表空間 ID 和表空間版本。

簽章
void setTablespaceData
    (
      const void* data,
      Uint32      len
    )
參數

此方法需要以下兩個參數:

  • 指向包含表空間 ID 和版本的 data 指標

  • 此資料的長度 (len),為 32 位元無號整數。

傳回值

.

Table::setTablespaceNames()

描述

設定資料表片段所使用的表空間名稱。

簽章
void setTablespaceNames
    (
      const void* data
      Uint32      len
    )
參數

此方法接受以下兩個參數:

  • 指向表空間名稱 data 的指標

  • 名稱資料的長度 (len),為 32 位元無號整數。

傳回值

.

Table::SingleUserMode

本節提供有關 SingleUserMode 資料類型的資訊。

描述

SingleUserMode 指定單一使用者模式生效時資料表的存取權限。

列舉值

下表顯示 SingleUserMode 的可能值及其描述:

表格 2.80:Table::SingleUserMode 值和描述

名稱 描述
SingleUserModeLocked 資料表已鎖定(無法使用)。
SingleUserModeReadOnly 資料表在唯讀模式下可用。
SingleUserModeReadWrite 資料表在讀寫模式下可用。

Table::validate()

描述

此方法會驗證新資料表在建立之前的定義,執行 Table::aggregate() 方法,並執行額外檢查。validate() 在建立或擷取資料表時會自動呼叫。因此,通常不需要直接呼叫 aggregate()validate()

您應了解,即使在呼叫 validate() 方法之後,仍然可能存在只能在實際建立資料表時由 NDB 核心偵測到的錯誤。

簽章
int validate
    (
      struct NdbError& error
    )
參數

NdbError 物件的參考。

傳回值

整數,如果成功,則值為 0,如果表格處於不一致的狀態,則值為 -1。在後者的情況下,也會設定 error