10bet官方网站文档家里
MySQL NDB集群API开发指南
下载本手册

2.3.3 Dictionary类

介绍设备的相关信息字典类。

字典类概述

父类

NdbDictionary

子类

列表

描述

它用于定义和检索数据对象元数据。它还包括创建和删除数据库对象的方法。

方法

下表列出了该类的公共方法以及每个方法的用途或用途:

表2.11字典类方法和描述

的名字 描述
字典() 类构造函数方法
~字典() 析构函数方法
beginSchemaTrans () 开始一个模式事务
createDatafile () 创建数据文件
createEvent () 创建一个事件
createforeignkey() 创建外键
createHashMap () 创建一个哈希图
方法createIndex () 创建一个索引
createLogfilegroup() 创建日志文件组
createRecord () 创建一个Ndbrecord目的
不知道() 创建一个表
createTablespace () 创建一个表空间
createundofile() 创建撤销文件
dropDatafile () 丢弃数据文件
DropEvent() 滴一个事件
dropForeignKey () 丢失外键
dropIndex () 下降索引
dropLogfileGroup () 丢弃日志文件组
dropTable () 掉下一张桌子
dropTablespace () 滴一个表空间
dropUndofile () 删除撤销文件
endSchemaTrans () 结束(提交和关闭)一个模式事务
getDatafile () 获取具有给定名称的数据文件
getDefaulthashmap() 获取表的默认散列映射
getEvent () 获取具有给定名称的事件
getForeignKey () 获取具有给定名称或引用的外键
gethashmap() 获取哈希映射给定其名称或关联表
getIndex() 获取具有给定名称的索引
getLogfileGroup () 获取具有给定名称的日志文件组
getNdbError () 检索最新的错误
gettable() 获取具有给定名称的表
getTablespace () 获取具有给定名称的表空间
getundofile() 获取具有给定名称的撤消文件
hasSchemaTrans () 告知当前是否存在一个模式事务
initDefaultHashMap () 初始化ATBLE'默认哈希图
invalidateTable () 使表对象无效
listObjects () 获取字典中的对象列表
listIndexes () 获取给定表格上定义的索引列表
listEvents () 获取字典中定义的事件列表
prepareHashMap () 创建或检索可以更新的哈希映射
removeCachedTable () 从本地缓存中删除表
removeCachedIndex () 从本地缓存中删除索引

类创建的表和索引等数据库对象字典::创建*()方法不能被MySQL服务器看到。这意味着它们不能被MySQL客户端访问,也不能被复制。由于这些原因,通常最好避免与它们一起工作。

字典类没有任何直接处理列的方法。你必须使用用于此目的的类方法—参见第2.3.1节,“列类”的细节。

类型

第2.3.10节,“List类”,第2.3.4节,“元素结构”

字典类构造函数

描述

类的新实例字典类。

该类的构造函数和析构函数都是受保护的方法,而不是public方法。

签名
受保护的字典(Ndb&ndb
参数

一个Ndb对象。

返回值

一种字典对象。

析构函数

析构函数不接受参数,也不返回任何内容:

受保护的〜字典(空白)

字典:beginSchemaTrans ()

描述

启动一个模式事务。如果事务已经处于活动状态,或者内核元数据被锁定,则会发生错误。属性,可以确定模式事务是否已经存在hasSchemaTrans ()方法。

一种元数据操作在创建、修改或删除数据对象时发生;这样的操作可以在NDB内核中创建额外的子操作。

Ndb对象及其相关的字典一次支持一个架构交易。默认情况下,每个元数据操作都单独执行;也就是说,对于每个操作,可以隐式启动架构事务,执行操作(包括任何子程序),并且交易关闭。

也可以显式地开始和结束模式事务,并在其边界内原子地执行一组用户定义的操作。在这种情况下,模式事务中的所有操作要么作为一个单元成功,要么被中止和回滚。这可以通过下面列出的步骤来完成:

  1. 要开始模式事务,调用beginSchemaTrans ()

  2. 执行所需的操作(例如不知道())。

  3. 通过调用结束模式事务endSchemaTrans

每个操作都被发送到NDB内核,由内核解析并保存它。解析失败会导致在返回之前回滚到前一个用户操作,此时用户可以继续执行整个事务,也可以中止整个事务。

在提交了所有的操作之后,endSchemaTrans ()处理并提交它们。在出现错误的情况下,事务将立即中止。

如果用户在呼叫前退出endSchemaTrans (), NDB内核中止事务。如果用户在呼叫前退出endSchemaTrans ()返回后,内核继续处理请求,并且它的完成状态报告在集群日志中。

签名
int beginschematrans(空白)
参数

没有一个

返回值

成功返回0,错误返回-1。

字典:createDatafile ()

描述

这个方法创建一个新的数据文件,给定数据文件对象。

签名
int createDatafile (const Datafile&dFile
参数

的一个实例的引用数据文件是必需的。

返回值

0.成功,1在失败。

字典:: CreateEvent()

描述

创建一个事件,给定一个对事件对象。

您应该记住,NDB API不跟踪分配的事件对象,这意味着用户必须删除事件这是通过createEvent (),在不再需要该对象之后。

签名
int createEvent (const Event&事件
参数

一个参考事件到一个事件对象。

返回值

0.成功,1在失败。

字典:: createforeignkey()

描述

创建一个ForeignKey对象,给定对该对象的引用和对象ID。

签名
int createForeignKey (const ForeignKey&, ObjectId* = 0, int旗帜= 0)
参数

A引用ForeignKey对象,和一个对象ID。一个可选值旗帜,如果使用,则允许创建外键而不执行任何外键检查。如果设置,则其值必须为CreateFK_NoVerify(1)。

返回值

0.成功。

字典:createHashMap ()

描述

创建一个HashMap

签名
int createHashMap (const HashMap&Hashmap.,ObjectID *id= 0)
参数

对哈希映射的引用,以及要分配给它的ID(可选)。

返回值

成功返回0;失败时,返回-1并设置错误。

字典:: createIndex()

描述

此方法创建一个索引给出了一个实例指数可能还有一个可选的实例表格

签名

调用这个方法时,可以使用或不使用table对象的引用:

int createIndex (const Index&指数
int createIndex (const Index&指数,const表&表格
参数

要求:参考一个指数对象。可选的:对A的引用表格对象。

返回值

0.成功,1在失败。

字典:: createLogfilegroup()

描述

的实例,此方法创建一个新的日志文件组LogfileGroup

签名
int createLogfileGroup (const LogfileGroup&lGroup
参数

一个单独的参数,一个对LogfileGroup对象,是必需的。

返回值

0.成功,1在失败。

字典:createRecord ()

描述

此方法用于创建NdbRecord对象,用于表或索引扫描操作。

签名

这个方法的签名取决于产生的NdbRecord是用于表操作还是索引操作:

创造一个NdbRecord有关表操作,请使用以下内容:

NdbRecord* createRecord (const Table*表格,Const Recordspecification *recspec., Uint32长度, Uint32elSize

创造一个NdbRecord对于索引操作,你可以使用以下任意一种:

NdbRecord* createRecord (const Index*指数,const表*表格,Const Recordspecification *recspec., Uint32长度, Uint32elSize

NdbRecord* createRecord (const Index*指数,Const Recordspecification *recspec., Uint32长度, Uint32elSize
参数

字典:createRecord ()采用以下参数:

返回值

一个NdbRecord用于涉及给定表或索引的操作。

例子

2.3.22,“NdbRecord接口”

字典::不知道()

描述

给定一个实例创建表表格

使用这种方法创建的表不能被MySQL服务器看到,不能被MySQL客户端更新,不能被复制。

签名
int createTable (const Table&表格
参数

的一个实例表格。看第2.3.27节,“Table类”,以获取更多信息。

返回值

0.成功,1在失败。

字典:createTablespace ()

描述

这个方法创建一个新的表空间表空间对象。

签名
int createTablespace (const tablspace &tSpace
参数

此方法需要单个参数 - 对一个实例引用表空间

返回值

0.成功,1在失败。

字典:: createundofile()

描述

此方法创建一个新的撤消文件,给定Undofile对象。

签名
int createUndofile (const Undofile&uFile
参数

此方法需要一个参数:对一个实例的引用Undofile

返回值

0.成功,1在失败。

字典:dropDatafile ()

描述

这个方法删除一个数据文件,给定数据文件对象。

签名
int dropDatafile (const Datafile&dFile
参数

的一个实例的引用数据文件是必需的。

返回值

0.成功,1在失败。

字典:: DropEvent()

描述

给定对事件的引用,此方法将删除事件事件对象。

签名
int dropEvent (const char*的名字,int= 0)
参数

此方法需要两个参数:

  • 的名字要删除的事件的字符串。

  • 默认情况下,DropEvent()如果指定的事件不存在,则失败。您可以通过为(可选)参数;在这种情况下,不会检查实际是否存在这样的事件,并且只有当事件存在时才会返回错误,但是由于某种原因不可能删除它。

返回值

0.成功,1在失败。

字典:dropForeignKey ()

描述

给定对元素的引用,此方法将删除外键ForeignKey要删除的对象。

签名
int dropForeignKey (const ForeignKey&)
参数

A引用ForeignKey要删除。

返回值

0.成功。

字典:dropIndex ()

描述

的实例,该方法将删除一个索引指数的可选实例表格

签名
int dropIndex (const Index&指数
int dropIndex (const Index&指数,const表&表格
参数

该方法有两个参数,其中一个是可选的:

  • 要求:参考一个指数对象。

  • :对A的引用表格对象。

返回值

0.成功,1在失败。

字典:dropLogfileGroup ()

描述

举出…的例子LogfileGroup,此方法删除相应的日志文件组。

签名
int dropLogfileGroup (const LogfileGroup&lGroup
参数

一个单独的参数,一个对LogfileGroup对象,是必需的。

返回值

0.成功,1在失败。

字典:dropTable ()

描述

的实例删除表表格

在NDB 7.3.5及更高版本中,此方法将所有外部密钥约束丢弃表格无论被删除的表是父表还是子表,还是同时作为父表和子表。(错误# 18069680)

在NDB 8.0.17之前,anNDB使用此方法删除的表在MySQL数据字典中持久化,但不能使用此方法删除下拉表mysql客户端。在NDB 8.0.17和更高版本中,这样的孤儿可以使用表格删除下拉表。(Bug #29125206, Bug #93672)

签名
int dropTable (const Table&表格
参数

的一个实例表格。看第2.3.27节,“Table类”,以获取更多信息。

返回值

0.成功,1在失败。

字典:dropTablespace ()

描述

这个方法删除一个表空间表空间对象。

签名
int dropTablespace (const Tablespace&tSpace
参数

此方法需要单个参数 - 对一个实例引用表空间

返回值

0.成功,1在失败。

字典:: DropEndofile()

描述

此方法删除撤消文件,给定Undofile对象。

签名
int dropUndofile (const Undofile&uFile
参数

此方法需要一个参数:对一个实例的引用Undofile

返回值

0.成功,1在失败。

字典:endSchemaTrans ()

描述

结束以开头的模式事务beginSchemaTrans ();导致处理和提交操作,或者中止和回滚操作。该方法结合了事务执行和关闭;这些任务不需要(或实现)单独的方法。即使当前没有模式事务处于活动状态,也可以成功调用此方法。

与许多其他NDB API方法一样,它完全有可能用于endSchemaTrans ()覆盖任何当前错误代码。出于这个原因,您应该首先检查并保存以前失败操作可能导致的任何错误代码。

签名
int endSchemaTrans (Uint32)旗帜= 0)
参数

标志决定了如何处理完成的事务。默认值是0,这将导致提交事务。

字典::SchemaTransFlag。你也可以用withendSchemaTrans ()这两个SchemaTransFlag值所示:

  • SchemaTransAbort(= 1):导致事务中止

  • Schematransbackground.(= 2):导致事务在后台执行;结果被写到集群日志中,而应用程序不等待响应继续运行。

返回值

成功返回0;在发生错误的情况下,返回-1并设置NdbError错误代码。

字典:getDatafile ()

描述

这个方法用于检索数据文件对象,给定数据文件所在的数据节点的节点ID,以及该节点文件系统上的数据文件路径。

签名
Datafile getDatafile (Uint32nodeid., const char *小路
参数

这个方法必须使用两个参数来调用,如下所示:

  • 32位无符号整数nodeid.数据文件所在的数据节点

  • 小路到节点文件系统上的数据文件(字符串作为字符指针)

返回值

一种数据文件object-see第2.3.2节,“数据文件类”的细节。

字典:getDefaultHashMap ()

描述

获取一个表的默认散列映射。

签名
int getDefaultHashMap (HashMap&dst, Uint32片段

int getDefaultHashMap (HashMap&dst, Uint32, Uint32片段
返回值

成功返回0;失败时,返回-1并设置错误。

字典:: getevent()

描述

这个方法是用来获取一个新的事件给定事件名称,表示事件的对象。

getEvent ()每次成功调用时分配内存。您应该记住,使用相同事件名称连续调用此方法将返回多个不同的对象。

NDB API不跟踪分配的事件对象,这意味着用户必须删除每个事件对象事件使用getEvent (),当对象不再需要时。

签名
const活动* getevent(const char *eventName
参数

eventName,一个字符串(字符指针)。

返回值

一个指向事件对象。看第2.3.5节“事件类”,以获取更多信息。

字典:: getforeignkey()

描述

这个方法是用来获取一个新的ForeignKey对象,该对象表示一个事件,给定对外键及其名称的引用。

签名
int getForeignKey (ForeignKey&dst, const char *的名字
参数

对外键及其的引用的名字,一个字符串(字符指针)。

返回值

一个指向ForeignKey对象。

字典:: gethashmap()

描述

按名称或表获取哈希映射。

签收
int getHashMap (HashMap&dst, const char *的名字

int getHashMap (HashMap&dst,const表*表格
参数

一个对哈希映射的引用,以及一个名称或表格

返回值

成功返回0;失败时,返回-1并设置错误。

字典:getIndex ()

描述

给定索引的名称和该表所属的表的名称,此方法检索指向索引的指针。

签名
const char* . getIndex (const char* . getIndex)iName, const char *tName)常量
参数

需要设置两个参数:

  • 索引的名称(iName

  • 索引所属的表的名称(tName

这两个都是字符串值,由字符指针表示。

返回值

一个指向指数。看第2.3.8节“索引类”,以获取有关此对象的信息。

字典:getLogfileGroup ()

描述

这种方法得到了一个LogfileGroup对象,给定日志文件组的名称。

签名
logfilegroup getlogfilegroup(const char *的名字
参数

的名字日志文件组。

返回值

的一个实例LogfileGroup;看第2.3.9节,“LogfileGroup类”,以获取更多信息。

字典:getNdbError ()

描述

此方法检索最近的NDBAPI错误。

签名
const struct NdbError& getdberror (void) const
参数

没有一个

返回值

对…的引用NdbError对象。

字典::可以获得的()

描述

该方法可用于访问a表格他的名字已经被知道了。

签名
const Table* getTable (const char*的名字)常量
参数

的名字的表。

返回值

指向表的指针如果没有桌子的名字提供。

字典:getTablespace ()

描述

给定表空间的名称或ID,该方法返回相应的名称或ID表空间对象。

签收

该方法可以通过以下两种方式调用:

  • 使用表空间名:

    表空间gettablespace(const char *的名字
  • 使用表空间ID:

    表空间gettablespace(uint32id
参数

无论是以下一项:

  • 的名字表空间的一个字符串(作为字符指针)

  • 无符号32位整数id的表空间

返回值

一种表空间如上所述,对象Section 2.3.28, "表空间类"

字典:: Getundofile()

描述

该方法获得Undofile对象,给定撤消文件所在节点的ID和该文件的文件系统路径。

签名
undofile getundofile(UINT32nodeid., const char *小路
参数

此方法需要以下两个参数:

  • nodeid.撤消文件所在的数据节点的;该值作为32位无符号整数传递

  • 小路在节点文件系统上的撤消文件(字符串为字符指针)

返回值

的一个实例Undofile。有关更多信息,请参见第2.3.29节,“Undofile类”

字典:hasSchemaTrans ()

描述

告诉一个NDB API模式事务是否正在进行。

签名
haschematrans (void) const
参数

没有一个

返回值

返回布尔值真正的如果架构交易正在进行中,否则

字典:initDefaultHashMap ()

描述

初始化表的默认哈希映射。

签名
int initdefaulthashmap(hashmap&dst,uint32碎片)

int initDefaultHashMap (HashMap& dst, Uint32桶数,Uint32碎片数)
参数

对哈希映射和片段数的引用。可选的桶数。

返回值

成功返回0;失败时,返回-1并设置错误。

字典:invalidateIndex ()

描述

此方法用于使缓存的索引对象无效。

签名

此方法无效的索引可以作为一个引用指数对象(使用指针),或通过索引名和表名,如下所示:

void invalidateindex(const char *indexName, const char *的表)void InvalidateIndex(Const Index *指数
参数

要从缓存中删除的索引的名称和它所属的表(indexName的表,或一个指向相应的指针指数对象。

返回值

没有一个

字典:invalidateTable ()

描述

此方法用于使缓存的表对象无效。

签名
void无效(const char *的名字

它也是使用a的possibloe表格对象,而不是表名,如下所示:

void invalidattable (const Table* .表格
参数

的名字从表缓存中删除的表的指针表格对象。

返回值

没有一个

字典:listEvents ()

描述

此方法返回字典中定义的所有事件的列表。

签名
int listEvents (List&列表
参数

A对A的引用列表对象。(看第2.3.10节,“List类”)。

返回值

0.成功;1在失败。

字典:listIndexes ()

描述

该方法用于获得a列表在一个表的所有索引中,给定表的名称。(看第2.3.10节,“List类”)。

签名
int listIndexes (List&列表, const char *表格)常量
参数

listIndexes ()占用两个参数,两者都是必需的:

  • A引用列表它包含了方法调用之后的索引

  • 的名称表格列出谁的索引

返回值

0.成功,1在失败。

字典:: listObjects()

描述

此方法用于获取字典中的对象列表。可以获取字典中的所有对象,也可以将列表限制为单一类型的对象。

签名

该方法有两个签名:

int listObjects(列表&列表,对象::类型类型= Object::TypeUndefined) const

int listObjects(列表&列表,对象::类型类型bool,完全合格)常量
参数

A对A的引用列表对象是必需的 - 这是包含之后包含字典对象的列表listObjects ()叫做。(看第2.3.10节,“List类”)。可选的第二个参数类型可以用来限制列表只包含给定类型的对象——也就是指定类型的对象对象:类型。(看对象:类型)。如果类型,则该列表包含字典的所有对象。

属性中还可以指定对象名称是否为列表是完全限定的(即对象名是否包括数据库、模式,可能还包括表名)。如果您指定完全合格,则还必须指定类型

笔记

设置完全合格错误的原因listObjects ()返回使用完全限定名称的对象。

返回值

0.成功,1在失败。

字典:: repimehashmap()

描述

创建或检索适合改变的哈希图。需要架构交易正在进行中;看字典:beginSchemaTrans (),以获取更多信息。

签收

下列任何一项:

  • int prepareHashMap (const Table&oldTable,表newTable
  • int prepareHashMap (const Table&oldTable,表newTable, Uint32
参数

对旧表和新表的引用。可以选择多个桶。

返回值

成功返回0;失败时,返回-1并设置错误。

字典:releaseRecord ()

描述

此方法用于释放NdbRecord在不再需要之后。

签名
release erecord (NdbRecord*记录
参数

NdbRecord被清理干净。

返回值

没有一个

例子

2.3.22,“NdbRecord接口”

字典:removeCachedTable ()

描述

此方法从本地缓存中删除由名称指定的表。

签名
void removeCachedTable (const char*表格
参数

的名称表格从缓存中删除。

返回值

没有一个

字典:removeCachedIndex ()

描述

给定来自本地缓存的指定索引,给定索引的名称以及包含它的表的名称。

签名
const char*指数, const char *表格
参数

removeCachedIndex ()方法需要两个参数:

  • 的名称指数需要从cache中移除

  • 的名称表格在其中找到索引

返回值

没有一个