2.3.27 表类

本节提供有关Table 类的信息,该类在 NDB API 中模拟数据库表。

表类概述

家长班

NdbDictionary

儿童班

没有任何

描述

该类Table表示 NDB Cluster 数据库中的表。这个类扩展了这个 Object类,而这个类又是这个类的一个内部 NdbDictionary类。

可以使用 NDB API 独立于 MySQL 服务器创建表。然而,这样做通常是不可取的,因为以这种方式创建的表不能被 MySQL 服务器看到。同样,可以使用Table方法修改现有表,但这些更改(重命名表除外)对 MySQL 是不可见的。

方法

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

表 2.78 表类方法及说明

姓名 描述
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 中删除(错误 #47960,错误 #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 中删除(错误 #47960,错误 #11756088)
setRangeListData() 集合LISTRANGE分区数据
setRowChecksumIndicator() 设置行校验和指示符
setRowGCIIndicator() 设置行 GCI 指示符
setSingleUserMode() 设置SingleUserMode此表的值
setStatusInvalid()
setTablespace() 设置用于此表的表空间
setTablespaceData() 设置表空间 ID 和版本
setTablespaceNames() 设置片段的表空间名称
validate() 在创建新表之前验证其定义

类型

该类Table定义了一个公共类型SingleUserMode

赋值 ( =) 运算符为此类重载,因此它始终执行深层复制。

与其他数据库对象一样, Table使用 NDB API 完成的对象创建和对现有表的属性更改在 MySQL 中是不可见的。例如,如果您使用 向表中添加新列Table::addColumn(),则 MySQL 看不到新列。关于表,此规则的唯一例外是使用的现有 NDB表 的名称更改Table::setName()对 MySQL 是可见的。

计算表大小。  在计算数据存储时,应该加上所有属性的大小(每个属性至少占用 4 个字节)以及 12 个字节的开销。可变大小属性的大小为 12 字节加上实际数据存储部分,并根据可变部分的大小增加额外开销。例如,考虑一个具有 5 个属性的表:一个 64 位属性、一个 32 位属性、两个 16 位属性和一个包含 64 个 8 位属性的数组。此表每条记录消耗的内存量是以下各项的总和:

  • 8 字节用于 64 位属性

  • 4 个字节用于 32 位属性

  • 8 个字节用于两个 16 位属性,由于右对齐,每个属性占用 4 个字节

  • 数组 64 字节(每个数组元素 64 * 1 字节)

  • 12 字节开销

每条记录总共 96 个字节。此外,您应该假设大约 2% 的开销用于分配页眉和浪费的空间。因此,100 万条记录应消耗 96 MB,额外的页眉和其他开销约为 2 MB。四舍五入得到 100 MB。

表::添加列()

描述

向表中添加一列。

签名
void addColumn
    (
      const Column& column
    )
参数

对要添加到表中的列的引用。

返回值

此方法的返回类型为void,但它确实创建了原始 Column对象的副本。

表::聚合()

描述

此方法计算表的聚合数据。它是聚合方法所必需的,例如 getNoOfPrimaryKeys() 在通过创建和检索表之前正常工作 getTableId()

签名
int aggregate
    (
      struct NdbError& error
    )
参数

NdbError 对象的引用。

返回值

一个整数,其值表示0成功以及-1表是否处于不一致状态。在后一种情况下, error也已设置。

表构造器

描述

创建Table实例。构造函数有两个版本 Table,一个用于创建新实例,一个用于复制构造函数。

使用此方法在 NDB API 中创建的表无法从 MySQL 访问。

签名

新实例:

Table
    (
      const char* name = ""
    )

复制构造函数:

Table
    (
      const Table& table
    )
参数

对于新实例,要创建的表的名称。对于副本,对要复制的表的引用。

返回值

一个Table对象。

析构函数
virtual ~Table()

表::等于()

描述

此方法用于将一个实例 Table与另一个实例进行比较。

签名
bool equal
    (
      const Table& table
    ) const
参数

Table 对要与当前实例进行比较 的对象的引用。

返回值

true如果两个表相同,否则false

表::getColumn()

描述

此方法用于获取列定义,给定索引或列名。

签名

可以使用列 ID 或列名调用此方法,如下所示:

Column* getColumn
    (
      const int AttributeId
    )

Column* getColumn
    (
      const char* name
    )
参数

以下之一:列在表中的索引(因为它将由列的 getColumnNo()方法返回),或列的名称。

返回值

指向具有指定索引或名称的列的指针。如果没有这样的列,则此方法返回 NULL

表::getDefaultNoPartitionsFlag()

描述

此方法用于查明表是否使用默认分区数。

签名
Uint32 getDefaultNoPartitionsFlag
    (
      void
    ) const
参数

没有

返回值

一个 32 位无符号整数。

表::getExtraMetadata()

描述

获取并解压缩此表的额外元数据。

NDB 8.0 中添加了此方法。

签名
int getExtraMetadata
    (
      Uint32& version,
      void** data,
      Uint32* length
    ) const
参数

该方法采用以下三个参数:

  • version:按照惯例,在 NDB Cluster 代码中使用,1意味着额外的元数据包含一个 .frm文件(blob 数据),如 NDB 7.6 及更早版本;2表示是NDB 8.0中序列化的字典信息。这些值实际上是任意的,并且是特定于应用程序的。

  • data:作为元数据检索的存储数据。

  • length:存储数据(元数据)的长度。

返回值

成功返回0,失败返回任何其他值。nonzer4o 值应解释为错误类型的错误代码。

表::getForceVarPart()

描述

表是否被强制分配可变大小的部分,而不管表实际上是否有任何可变大小的列。这是允许随后将列在线添加到表中所必需的(请参阅 NDB Cluster 中使用 ALTER TABLE 的在线操作)。

签名
bool getForceVarPart
    (
      void
    ) const
参数

没有

返回值

true当表被迫分配可变大小的部分时。

表::getFragmentCount()

描述

此方法获取表中的片段数。

签名
Uint32 getFragmentCount
    (
      void
    ) const
参数

没有

返回值

表碎片的数量,作为 32 位无符号整数。

表::getFragmentData()

描述

此方法获取表的片段数据(ID、状态和节点组)。

签名
const void* getFragmentData
    (
      void
    ) const
参数

没有

返回值

指向要读取的数据的指针。

表::getFragmentDataLen()

描述

获取要读取的表分片数据的长度,以字节为单位。

签名
Uint32 getFragmentDataLen
    (
      void
    ) const
参数

没有

返回值

要读取的字节数,作为无符号 32 位整数。

表::getFragmentNodes()

描述

此方法检索存储给定片段的节点列表。

签名
Uint32 getFragmentNodes
    (
      Uint32 fragmentId,
      Uint32* nodeIdArrayPtr,
      Uint32 arraySize
    ) const
参数

该方法采用以下三个参数:

  • fragmentId: 所需片段的 ID。

  • nodeIdArrayPtr:指向包含此片段的节点的节点 ID 数组的指针。

    笔记

    通常,主片段是该数组中的条目 0。

  • arraySize:包含节点 ID 的数组的大小。如果这小于片段数,则仅将第一个 arraySize条目写入该数组。

返回值

返回值0表示错误;否则,这是表碎片的数量,作为 32 位无符号整数。

表::getFragmentType()

描述

此方法获取表的碎片类型。

签名
FragmentType getFragmentType
    (
      void
    ) const
参数

没有

返回值

一个Object::FragmentType 值。

表::getFrmData()

笔记

此功能已弃用,应避免使用。它可能会在 NDB Cluster 的未来版本中被删除。

描述

.FRM从与表关联的文件中 获取数据。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM文件,而是使用 MySQL 数据字典来存储表元数据;因此,从 NDB 8.0.27 开始,此方法已被弃用,并且会在未来的 NDB 版本中删除。对于读取和写入表元数据,请改用 getExtraMetadata() and setExtraMetadata()

签名
const void* getFrmData
    (
      void
    ) const
参数

没有

返回值

指向.FRM数据的指针。

表::getFrmLength()

笔记

此功能已弃用,应避免使用。它可能会在 NDB Cluster 的未来版本中被删除。

描述

获取表的 .FRM文件数据的长度,以字节为单位。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM文件,而是使用 MySQL 数据字典来存储表元数据;因此,从 NDB 8.0.27 开始,此方法已被弃用,并且会在未来的 NDB 版本中删除。对于读取和写入表元数据,请改用 getExtraMetadata() and setExtraMetadata()

签名
Uint32 getFrmLength
    (
      void
    ) const
参数

没有

返回值

文件数据的长度.FRM(无符号 32 位整数)。

表::getHashMap()

描述

获取用于此表的哈希映射。

签名
bool getHashMap
    (
      Uint32* id = 0,
      Uint32* version = 0
    ) const
参数

表 ID 和版本。

返回值

如果表有哈希映射则为真,否则为假。

表::getKValue()

描述

此方法获取 KValue,这是一个哈希参数,目前仅限于 value 6。在未来的版本中,将此参数设置为其他值可能会变得可行。

签名
int getKValue
    (
      void
    ) const
参数

没有

返回值

一个整数(目前总是6)。

表::getLinearFlag()

描述

此方法检索表的线性散列标志的值。

签名
bool getLinearFlag
    (
      void
    ) const
参数

没有

返回值

true如果设置了标志, false如果没有。

表::getLogging()

描述

此类用于检查表是否已记录到磁盘——也就是说,它是永久的还是临时的。

签名
bool getLogging
    (
      void
    ) const
参数

没有

返回值

返回布尔值。如果此方法返回 true,则会在表上完成完整的检查点和日志记录。如果false,则该表是一个临时表,没有记录到磁盘;在系统重新启动的情况下,该表仍然存在并保留其定义,但它将是空的。默认日志记录值为true.

表::getMaxLoadFactor()

描述

当本地哈希表中的容器开始拆分时,此方法返回负载因子(哈希参数)。

签名
int getMaxLoadFactor
    (
      void
    ) const
参数

没有

返回值

一个整数,其最大值为 100。当返回最大值时,这意味着优化了内存使用。较小的值表示每个容器中存储的数据较少,这意味着可以更快地找到键,但会消耗更多的内存。

表::getMaxRows()

描述

此方法获取表可以容纳的最大行数。这用于计算分区数。

签名
Uint64 getMaxRows
    (
      void
    ) const
参数

没有

返回值

表行的最大数量,作为 64 位无符号整数。

表::getMinLoadFactor()

描述

当哈希表开始减少时,此方法获取负载因子的值。这应该始终小于 返回的值getMaxLoadFactor()

签名
int getMinLoadFactor
    (
      void
    ) const
参数

没有

返回值

以整数表示的百分比;参见 Table::getMaxLoadFactor()

表::getMinRows()

描述

此方法获取表可以容纳的最小行数,用于计算分区数。

签名
Uint64 getMinRows
    (
      void
    ) const
参数

没有

返回值

表行的最小数量,作为 64 位无符号整数。

表:getName()

描述

获取表的名称。

签名
const char* getName
    (
      void
    ) const
参数

没有

返回值

表的名称(字符串)。

表::getNoOfAutoIncrementColumns()

描述

该方法用于获取表中自增列的个数。

签名
int getNoOfAutoIncrementColumns
    (
      void
    ) const
参数

没有

返回值

一个整数,表示表中自增列的数量。

表::getNoOfColumns()

描述

此方法用于获取表中的列数。

签名
int getNoOfColumns
    (
      void
    ) const
参数

没有

返回值

一个整数,表示表中的列数。

表::getNoOfPrimaryKeys()

描述

此方法查找表中主键列的数量。

签名
int getNoOfPrimaryKeys
    (
      void
    ) const
参数

没有

返回值

表示表中主键列数的整数。

表::getObjectId()

描述

此方法获取表的对象 ID。

签名
virtual int getObjectId
    (
      void
    ) const
参数

没有

返回值

对象 ID 作为整数返回。

表::getObjectStatus()

描述

此方法获取表的状态..

签名
virtual Object::Status getObjectStatus
    (
      void
    ) const
参数

没有

返回值

一个Object::Status值。

表::getObjectType()(过时)

描述

此方法未按预期工作,并已在 NDB 7.5.0 中删除(Bug #47960,Bug #11756088)。

签名
Object::Type getObjectType
    (
      void
    ) const
参数

没有

返回值

返回一个Object::Type 值。

表::getObjectVersion()

描述

此方法获取表的对象版本(请参阅 NDB Schema Object Versions)。

签名
virtual int getObjectVersion
    (
      void
    ) const
参数

没有

返回值

表的对象版本,作为整数。

表::getPartitionBalance()

描述

该方法获取表的分区平衡方案(分片计数类型)。

在 NDB 7.5 之前,此方法称为 getFragmentCountType().

签名
Object::PartitionBalance getPartitionBalance
    (
      void
    ) const
参数

没有

返回值

分区平衡方案,作为 type 的值 Object::PartitionBalance

表::getPartitionBalanceString()

描述

此方法获取表的分区平衡方案(碎片计数类型),并将其作为字符串返回。

在 NDB 7.5 之前,此方法称为 getFragmentCountTypeString().

签名
const char* getPartitionBalanceString
    (
      void
    ) const
参数

没有

返回值

分区平衡方案,作为字符串值。

表::getPartitionId()

描述

在给定哈希值的情况下获取表分区 ID。

签名
Uint32 getPartitionId
    (
      Uint32 hashvalue
    ) const
参数

一个hashvalue。请注意,如果实际上未检索到该表(例如,使用 getTableId()),则结果可能不准确或无用。

返回值

对应的分区的标识符 hashvalue

表::getPrimaryKey()

描述

该方法用于获取表的主键名称。

签名
const char* getPrimaryKey
    (
      int no
    ) const
参数

没有

返回值

主键的名称,一个字符串(字符指针)。

表::getRangeListData()

描述

此方法获取与表关联的范围或列表数据。

签名
const void* getRangeListData
    (
      void
    ) const
参数

没有

返回值

指向数据的指针。

表::getRangeListDataLen()

描述

此方法获取表的范围或列表数组的大小。

签名
Uint32 getRangeListDataLen
    (
      void
    ) const
参数

没有

返回值

列表或范围数组的长度,作为整数。

表::getRowChecksumIndicator()

描述

检查是否设置了行校验和指示器。

签名
bool getRowChecksumIndicator
    (
      void
    ) const
参数

没有

返回值

一个truefalse值。

表::getRowGCIIndicator()

描述

检查是否设置了行 GCI 指示符。

签名
bool getRowGCIIndicator
    (
      void
    ) const
参数

没有

返回值

一个truefalse值。

表::getRowSizeInBytes()

描述

获取此表中一行的大小。这是可以存储在表的单行中的(最大)数据量,不包括存储在表外部的任何 blob 数据。

签名
int getRowSizeInBytes
    (
      void
    ) const
参数

没有

返回值

行的大小,以字节为单位。

表::getSingleUserMode()

描述

获取表的单用户模式。

签名
enum SingleUserMode getSingleUserMode
    (
      void
    ) const
参数

没有

返回值

一个SingleUserMode 值。

表::getTableId()

描述

此方法获取表的 ID。

签名
int getTableId
    (
      void
    ) const
参数

没有

返回值

表 ID,作为整数。

表::获取表空间()

描述

该方法有两种使用方式:获取分配给该表的表空间的名称;验证给定的表空间是该表正在使用的表空间。

签名

要获取表空间的名称,请不带任何参数调用:

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. 当使用两个参数调用时, true如果表空间与具有指定 ID 和版本的表空间相同,则返回;否则,它返回false

表::获取表空间数据()

描述

此方法获取表的表空间数据(ID 和版本)。

签名
const void* getTablespaceData
    (
      void
    ) const
参数

没有

返回值

指向数据的指针。

表::getTablespaceDataLen()

描述

该方法用于获取表的表空间数据的长度。

签名
Uint32 getTablespaceDataLen
    (
      void
    ) const
参数

没有

返回值

数据的长度,作为 32 位无符号整数。

表::getTablespaceNames()

描述

此方法获取指向表片段中使用的表空间名称的指针。

签名
const void* getTablespaceNames
    (
      void
    )
参数

没有

返回值

返回指向表空间名称数据的指针。

表::getTablespaceNamesLen()

描述

该方法获取返回的表空间名称数据的长度getTablespaceNames()。( 参见表::getTablespaceNames()。)

签名
Uint32 getTablespaceNamesLen
    (
      void
    ) const
参数

没有

返回值

返回名称数据的长度,以字节为单位,作为 32 位无符号整数。

表::有默认值()

描述

用于确定表中是否有任何列是使用 以外的默认值定义的 NULL

要读取和写入默认列值,请使用 Column::getDefaultValue()Column::setDefaultValue()

签名
bool hasDefaultValues
    (
      void
    ) const
参数

没有

返回值

如果表中有任何具有默认值true的非列,则 返回,否则返回。 NULLfalse

表::setDefaultNoPartitionsFlag()

描述

此方法设置一个指示器,用于确定表是否使用默认分区数。

签名
void setDefaultNoPartitionsFlag
    (
      Uint32 indicator
    ) const
参数

此方法采用单个参数 indicator,一个 32 位无符号整数。

返回值

没有

表::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在成功。任何其他值表示失败;在这种情况下,该值是指示错误类型的错误代码。

表::setForceVarPart()

描述

强制表分配一个可变大小的部分,以允许对表进行在线操作,即使它没有可变大小的列。有关 NDB Cluster中在线操作的更多信息, 请参阅NDB Cluster 中使用 ALTER TABLE 的在线操作。

签名
void setForceVarPart
    (
      bool force
    )
参数

使用 with forceset to true使表具有可变大小的部分。

返回值

没有

表::setFragmentCount()

描述

设置表碎片的数量。

签名
void setFragmentCount
    (
      Uint32 count
    )
参数

count是要用于表的片段数。

返回值

没有

表::setFragmentData()

描述

此方法写入包含以下片段信息的数组:

  • 片段编号

  • 节点组 ID

  • 片段状态

签名
void setFragmentData
    (
      const void* data,
      Uint32      len
    )
参数

此方法采用以下两个参数:

  • 指向要写入的片段数据的指针

  • 此数据的长度 ( len),以字节为单位,为 32 位无符号整数

返回值

没有

表::setFragmentType()

描述

此方法设置表的碎片类型。

签名
void setFragmentType
    (
      FragmentType fragmentType
    )
参数

此方法采用一个参数,一个 Object::FragmentType值。

返回值

没有

表::setFrm()

笔记

此功能已弃用,应避免使用。它可能会在 NDB Cluster 的未来版本中被删除。

描述

此方法用于将数据写入此表的 .FRM文件。

MySQL 8.0 和 NDB 8.0 不再使用 .FRM文件,而是使用 MySQL 数据字典来存储表元数据;因此,从 NDB 8.0.27 开始,此方法已被弃用,并且会在未来的 NDB 版本中删除。对于读取和写入表元数据,请改用 getExtraMetadata() and setExtraMetadata()

签名
void setFrm
    (
      const void* data,
      Uint32      len
    )
参数

此方法采用以下两个参数:

  • 指向data要写入的 的指针。

  • 数据的长度 ( len)。

返回值

没有

表::setHashMap()

描述

为表设置哈希映射。

签名
int setHashMap
    (
      const class HashMap &
    )
参数

对哈希映射的引用。

返回值

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

表::setKValue()

描述

这设置了KValue一个散列参数。

签名
void setKValue
    (
      int kValue
    )
参数

kValue是一个整数。当前唯一允许的值是6. 在未来的版本中,这可能会成为一个可变参数。

返回值

没有

表::setLinearFlag()

描述

设置表的线性散列标志。请参阅 表::getLinearFlag()

签名
void setLinearFlag
    (
      Uint32 flag
    )
参数

flag一个 32 位无符号整数。

返回值

没有

表::setLogging()

描述

切换表的日志记录状态。请参阅 表::getLogging()

签名
void setLogging
    (
      bool enable
    )
参数

如果enabletrue,则启用该表的日志记录;如果是false,则禁用日志记录。

返回值

没有

表::setMaxLoadFactor()

描述

此方法设置在本地哈希表中拆分容器时的最大负载因子。

签名
void setMaxLoadFactor
    (
      int max
    )
参数

此方法采用单个参数 max,即百分比的整数表示(例如,45表示 45%)。有关详细信息,请参阅 Table::getMaxLoadFactor()

这绝不能大于最小负载系数。

返回值

没有

表::setMaxRows()

描述

此方法设置表可以容纳的最大行数。

签名
void setMaxRows
    (
      Uint64 maxRows
    )
参数

maxRows是一个 64 位无符号整数,表示要在表中保存的最大行数。

返回值

没有

表::setMinLoadFactor()

描述

此方法设置哈希表缩减开始时的最小加载因子。

签名
void setMinLoadFactor
    (
      int min
    )
参数

此方法采用单个参数 min,即百分比的整数表示(例如,45表示 45%)。有关详细信息,请参阅 Table::getMinLoadFactor()

返回值

没有

表::设置名称()

描述

此方法设置表的名称。

这是MySQL 可见其效果 的唯一 方法。set*()Table

签名
void setName
    (
      const char* name
    )
参数

name是表的(新)名称。

返回值

没有

表::setObjectType()(过时)

描述

此方法未按预期工作,并已在 NDB 7.5.0 中删除(Bug #47960,Bug #11756088)。

签名
void setObjectType
    (
      Object::Type type
    )
参数

想要的对象type。这必须是Object::TypeType中列出的值 之一。

返回值

没有

表::setPartitionBalance()

描述

设置表的分区平衡方案。

在 NDB 7.5 之前,此方法称为 setFragmentCountType().

签名
void setPartitionBalance
    (
      Object::PartitionBalance scheme
    )
参数

scheme是用于表的分区平衡方案。这是 type 的值 PartitionBalance

返回值

没有

表::设置范围列表数据()

描述

此方法设置一个数组,其中包含将范围值和列表值映射到片段的信息。这本质上是一个由片段 ID/值对组成的排序映射。对于范围分区,每个片段有一对。对于列表分区,它可以是任意数量的对,但至少与片段的数量一样多。

签名
void setRangeListData
    (
      const void* data,
      Uint32      len
    )
参数

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

  • data指向包含 ID/值对 的范围或列表的指针

  • 此数据的长度 ( len),作为 32 位无符号整数。

返回值

没有

表::setRowChecksumIndicator()

描述

设置行校验和指示符。

签名
void setRowChecksumIndicator
    (
      bool value
    ) const
参数

一个truefalse value

返回值

没有

表::setRowGCIIndicator()

描述

设置行 GCI 指示符。

签名
void setRowGCIIndicator
    (
      bool value
    ) const
参数

一个truefalse value

返回值

没有

表::setSingleUserMode()

描述

为表设置 a SingleUserMode

签名
void setSingleUserMode
    (
      enum SingleUserMode
    )
参数

一个SingleUserMode 值。

返回值

没有

表::setStatusInvalid()

描述

强制使表的状态无效。

签名
void setStatusInvalid
    (
      void
    ) const
参数

没有

返回值

没有

表::设置表空间()

描述

此方法设置表的表空间。

请参阅第 2.3.28 节,“表空间类”

签名

使用表空间的名称:

void setTablespace
    (
      const char* name
    )

使用Tablespace对象:

void setTablespace
    (
      const class Tablespace& tablespace
    )
参数

可以使用单个参数调用此方法,该参数可以是以下两种类型之一:

  • name空间的(字符串)。

  • 对现有 Tablespace实例的引用。

返回值

没有

表::设置表空间数据()

描述

此方法为每个片段设置表空间信息,包括表空间 ID 和表空间版本。

签名
void setTablespaceData
    (
      const void* data,
      Uint32      len
    )
参数

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

  • 指向data 包含表空间 ID 和版本 的指针

  • 此数据的长度 ( len),作为 32 位无符号整数。

返回值

没有

表::设置表空间名称()

描述

设置表片段使用的表空间的名称。

签名
void setTablespaceNames
    (
      const void* data
      Uint32      len
    )
参数

此方法采用以下两个参数:

  • 指向表空间名称的指针 data

  • 名称数据的长度 ( len),作为 32 位无符号整数。

返回值

没有

表::单用户模式

本节提供有关 SingleUserMode数据类型的信息。

描述

SingleUserMode指定在单用户模式生效时对表的访问权限。

枚举值

下表显示了可能的值SingleUserMode以及说明:

表 2.79 Table::SingleUserMode 值和说明

姓名 描述
SingleUserModeLocked 该表已锁定(不可用)。
SingleUserModeReadOnly 该表以只读模式提供。
SingleUserModeReadWrite 该表在读写模式下可用。

表::验证()

描述

此方法在创建新表之前验证新表的定义,执行该 Table::aggregate()方法并执行其他检查。 validate()在创建或检索表时自动调用。因此,通常不需要直接调用aggregate() 或调用validate()

您应该知道,即使在 validate()调用该方法之后,仍然可能存在错误,这些错误只能在 NDB实际创建表时由内核检测到。

签名
int validate
    (
      struct NdbError& error
    )
参数

NdbError 对象的引用。

返回值

一个整数,其值表示0成功以及-1表是否处于不一致状态。在后一种情况下, error也已设置。