本节提供有关
NdbDictionary类的信息,该类存储有关NDB数据库对象(例如表、列和索引)的元信息。
虽然创建和删除数据库对象的首选方法是通过 MySQL 服务器,但NdbDictionary也允许开发人员通过 NDB API 执行这些任务。
- 家长班
没有任何
- 儿童班
-
对于
NdbDictionary子类枚举的数字等价物,请参阅/storage/ndb/include/ndbapi/NdbDictionary.hppNDB Cluster 源树中的文件。 - 描述
-
这是一个数据字典类,支持表、列、索引的查询。它还提供了定义这些数据库对象和删除它们的方法。这两种功能都是使用对这些对象建模的内部类来提供的。其中包括以下内部类:
Table用于处理表格Column用于创建表列Index用于处理二级索引Dictionary用于创建数据库对象和进行模式查询Event用于处理集群中的事件。
其他
Object子类对使用 NDB 集群磁盘数据表以及外键约束所需的表空间、日志文件组、数据文件和撤消文件进行建模。NdbDictionary无法从 MySQL 服务器查看 使用创建的表和索引 。通过最初从 NDB Cluster 创建的 NDB API 删除索引会导致不一致。在这样的操作之后,使用 NDB API 从中删除一个或多个索引的表可能不再被 MySQL 使用。在这种情况下,必须删除该表,然后使用 MySQL 重新创建该表以使其再次可供 MySQL 访问。
- 方法
-
NdbDictionary本身没有公共实例方法,只有用于处理NdbRecord对象的静态方法。不使用的操作NdbRecord是通过NdbDictionary子类实例方法完成的。下表列出了公共方法NdbDictionary以及每个方法的用途或用途:表 2.36 NdbDictionary 类方法和说明
姓名 描述 getEmptyBitmask()返回一个空列存在位掩码,可以与 NdbRecordgetFirstAttrId()NdbRecord获取给定对象指定的第一个属性 IDgetRecordIndexName()获取 NdbRecord 引用的索引对象的名称 getRecordRowLength()获取使用给定的存储一行数据所需的字节数 NdbRecordgetRecordTableName()获取 NdbRecord 引用的表对象的名称 getRecordType()获取 NdbRecord 的 RecordType getValuePtr()返回指向由属性 ID 指定的存储数据开头的指针,使用 NdbRecordisNull()显示列的空位是真还是假 setNull()设置列的空位
- 类型
-
NdbDictionary 定义了两个数据结构,列在这里:
抽象的
本节提供有关
AutoGrowSpecification数据结构的信息。
- 家长班
- 描述
The
AutoGrowSpecification是定义在类中的数据结构,作为 类 和NdbDictionary类的一些方法的参数或返回值。TablespaceLogfileGroup- 成员
-
AutoGrowSpecification成员如下表所示:表 2.37 NdbDictionary::AutoGrowSpecification 数据结构成员名称和描述
姓名 描述 min_free??? max_size??? file_size??? filename_pattern???
- 描述
通过查找存储在 NdbRecord 对象中的列的偏移量并返回行位置和偏移量之和,返回指向由属性 ID 指定的存储数据开头的指针。
- 签名
-
此方法提供 row-const 和非 row-const 版本:
static const char* getValuePtr ( const NdbRecord* record, const char* row, Uint32 attrId ) static char* getValuePtr ( const NdbRecord* record, char* row, Uint32 attrId ) - 参数
一个指向
NdbRecord描述行格式的对象的指针,一个指向行数据开始的指针(const在这个方法的 const 版本中),以及列的属性 ID,- 返回值
指向行中属性开头的指针。如果属性不是
NdbRecord定义的一部分,则为空。
- 描述
指示给定列的空位是否设置为
true或false。NdbRecord从传递的对象中获取空位相对于行指针的位置 。如果该列不可为空,或者如果该列不是NdbRecord定义的一部分,则该方法返回false。- 签名
static bool isNull ( const NdbRecord* record, const char* row, Uint32 attrId )- 参数
一个指向
NdbRecord描述行格式的对象的指针,一个指向行数据开始的指针,以及要检查的列的属性 ID。- 返回值
布尔值
true,如果属性 ID 存在于 this 中NdbRecord,则可为空,并且此行的空位已设置;否则,布尔值false。
本节提供有关
RecordSpecification结构的信息。
- 家长班
- 描述
该结构用于在创建
NdbRecord对象时指定列和范围偏移量。- 成员
-
构成该结构的元素如下表所示:
表 2.38 NdbDictionary::RecordSpecification 属性,带有类型和描述
姓名 类型 描述 columnColumn此条目描述的列(列的最大大小定义行的字段大小)。即使在 NdbRecord为索引创建 时,它也必须指向从基础表而不是索引本身获得的列。offsetUint32数据距行首的偏移量。对于读取 blob,将 blob 句柄 ( NdbBlob) 而不是实际的 blob 数据写入行。这意味着该行中至少 必须有sizeof(NdbBlob*)must be available。nullbit_byte_offsetUint32从包含该 NULL位的字节的行开始的偏移量。nullbit_bit_in_byteUint32NULL位 (0-7)。nullbit_byte_offset并且nullbit_bit_in_byte不用于不可为空的列。有关详细信息,请参阅第 2.3.22 节,“NdbRecord 接口”。
- 描述
将给定列的空位设置为提供的值。空位的偏移量是从传递的
NdbRecord对象中获得的。如果属性 ID 不是 的一部分NdbRecord,或者它不可为空,则此方法返回错误 (-1)。- 签名
static int setNull ( const NdbRecord* record, char* row, Uint32 attrId, bool value )- 参数
指向描述行格式的
record( object ) 的指针;NdbRecord指向row数据开始的指针;列的属性 ID (attrId); 并将value空位设置为 (true或false)。- 返回值
成功返回0;
attrId如果不是 的一部分record或不可为 null, 则返回 -1 。