本節提供有關 NdbDictionary 類別的資訊,該類別儲存有關 NDB 資料庫物件 (例如資料表、資料行與索引) 的中繼資訊。
雖然建立與刪除資料庫物件的偏好方法是透過 MySQL 伺服器,但 NdbDictionary 也允許開發人員透過 NDB API 執行這些工作。
- 父類別
無
- 子類別
-
如需
NdbDictionary子類別列舉的數值對等項目,請參閱 NDB Cluster 原始碼樹狀結構中的/storage/ndb/include/ndbapi/NdbDictionary.hpp檔案。 - 描述
-
這是一個資料字典類別,支援有關資料表、資料行與索引的查詢。它也提供定義這些資料庫物件以及移除它們的方法。這兩種功能都是透過模擬這些物件的內部類別來提供。這些包括下列內部類別
Table用於處理資料表Column用於建立資料表資料行Index用於處理次要索引Dictionary用於建立資料庫物件並進行結構描述查詢Event用於處理叢集中的事件。
其他
Object子類別會模擬使用 NDB Cluster 磁碟資料表以及外部索引鍵限制所需的工作區、記錄檔群組、資料檔案與復原檔。使用
NdbDictionary建立的資料表與索引無法從 MySQL 伺服器檢視。透過 NDB API 捨棄最初從 NDB Cluster 建立的索引會導致不一致。可能使用 NDB API 捨棄一個或多個索引的資料表在這些作業之後將無法再被 MySQL 使用。在此情況下,必須捨棄資料表,然後使用 MySQL 重新建立,才能再次讓 MySQL 存取。
- 方法
-
NdbDictionary本身沒有公用執行個體方法,只有用於處理NdbRecord物件的靜態方法。不使用NdbRecord的作業是透過NdbDictionary子類別執行個體方法來完成。下表列出NdbDictionary的公用方法,以及每個方法的用途或用法表 2.37 NdbDictionary 類別方法與描述
名稱 描述 getEmptyBitmask()傳回空的資料行存在位元遮罩,可以搭配 NdbRecord使用getFirstAttrId()取得給定 NdbRecord物件指定的第一個屬性 IDgetRecordIndexName()取得 NdbRecord 所參考之索引物件的名稱 getRecordRowLength()取得使用給定 NdbRecord儲存一列資料所需的位元組數getRecordTableName()取得 NdbRecord 所參考之資料表物件的名稱 getRecordType()取得 NdbRecord 的 RecordType getValuePtr()傳回屬性 ID 指定之儲存資料開頭的指標,使用 NdbRecordisNull()顯示資料行的 Null 位元是否為 true 或 false setNull()設定資料行的 Null 位元
- 類型
-
NdbDictionary 定義了兩個資料結構,列示於此
摘要
本節提供有關 AutoGrowSpecification 資料結構的資訊。
- 父類別
- 描述
AutoGrowSpecification是在NdbDictionary類別中定義的資料結構,用作Tablespace和LogfileGroup類別部分方法之參數或傳回值。- 成員
-
AutoGrowSpecification具有下表顯示的成員表 2.38 NdbDictionary::AutoGrowSpecification 資料結構成員名稱與描述
名稱 描述 min_free??? max_size??? file_size??? filename_pattern???
- 描述
透過查閱儲存在 NdbRecord 物件中的欄位偏移量,並傳回列位置和偏移量的總和,來傳回指向由屬性 ID 指定的已儲存資料開頭的指標。
- 簽章
-
此方法提供列常數和非列常數版本
static const char* getValuePtr ( const NdbRecord* record, const char* row, Uint32 attrId ) static char* getValuePtr ( const NdbRecord* record, char* row, Uint32 attrId ) - 參數
指向描述列格式的
NdbRecord物件的指標、指向列資料開頭的指標(在此方法的常數版本中為const),以及欄位的屬性 ID。- 傳回值
指向列中屬性開頭的指標。如果屬性不是
NdbRecord定義的一部分,則為 null。
- 描述
指出給定欄的 Null 位元是否設為
true或false。相對於列指標的 Null 位元位置是從傳遞的NdbRecord物件取得。如果欄位不可為 Null,或如果欄位不是NdbRecord定義的一部分,則此方法會傳回false。- 簽章
static bool isNull ( const NdbRecord* record, const char* row, Uint32 attrId )- 參數
指向描述列格式的
NdbRecord物件的指標、指向列資料開頭的指標,以及要檢查之欄的屬性 ID。- 傳回值
如果此
NdbRecord中存在屬性 ID,且可為 Null,且此列的 Null 位元已設定,則為布林值true;否則,為布林值false。
本節提供有關 RecordSpecification 結構的資訊。
- 父類別
- 描述
此結構用於在建立
NdbRecord物件時指定欄和範圍偏移量。- 成員
-
組成此結構的元素顯示在下表中
nullbit_byte_offset和nullbit_bit_in_byte不適用於不可為 Null 的欄。如需更多資訊,請參閱第 2.3.22 節,「The NdbRecord Interface」。
- 描述
將給定欄的 Null 位元設定為提供的值。Null 位元的偏移量是從傳遞的
NdbRecord物件取得。如果屬性 ID 不是NdbRecord的一部分,或如果它不可為 Null,則此方法會傳回錯誤 (-1)。- 簽章
static int setNull ( const NdbRecord* record, char* row, Uint32 attrId, bool value )- 參數
指向描述列格式的
record(NdbRecord物件) 的指標;指向row資料開頭的指標;欄位 (attrId) 的屬性 ID;以及要將 Null 位元設定為的value(true或false)。- 傳回值
成功時傳回 0;如果
attrId不是record的一部分,或不可為 Null,則傳回 -1。