文档首页
MySQL NDB 集群 API 开发者指南
相关文档 下载本手册
PDF (US Ltr) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.6 ForeignKey 类

本节提供有关 ForeignKey 类的信息,该类模拟 NDB 表上的外键。

ForeignKey 类概述

父类

Object

子类

.

方法

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

表 2.20 ForeignKey 类方法和说明

名称 说明
ForeignKey() 类构造函数
~ForeignKey() 类析构函数
getName() 获取外键的名称
getParentTable() 获取外键的父表
getChildTable() 获取外键的子表
getParentColumnCount() 获取父表中的列数
getChildColumnCount() 获取子表中的列数
getParentColumnNo() 获取父表中的列号
getChildColumnNo() 获取子表中的列号
getParentIndex() 如果键指向父表的主键,则返回 0
getChildIndex() 如果使用子表的主键解析子引用,则返回 0
getOnUpdateAction() 获取外键的更新操作 (FkAction)
getOnDeleteAction() 获取外键的删除操作 (FkAction)
setName() 设置外键的名称
setParent() 设置外键的父表
setChild() 设置外键的子表
setOnUpdateAction() 设置外键的更新操作 (FkAction)
setOnDeleteAction() 设置外键的删除操作 (FkAction)
getObjectStatus() 获取对象状态
getObjectId() 获取对象 ID
getObjectVersion() 获取对象版本

类型

ForeignKey 类有一个公共类型,即 FkAction 类型。

ForeignKey()

说明

创建全新的外键引用或现有外键引用的副本。

签名

新实例

ForeignKey
    (
      void
    )

复制构造函数

ForeignKey
    (
      const ForeignKey&
    )
参数

对于新实例:

对于复制构造函数:对 ForeignKey 的现有实例的引用。

返回值

ForeignKey 的新实例。

ForeignKey::FkAction

本节提供有关 FkAction 的信息,它是对在父表上执行更新或删除操作时外键的引用操作进行建模的枚举。

枚举值

下表显示了可能的值以及相应的引用操作

表 2.21 ForeignKey::FkAction 数据类型值和说明

名称 说明
NoAction NO ACTION:延迟检查。
Restrict RESTRICT:拒绝对父表的操作。
Cascade CASCADE:对父表中的行执行操作;对子表中的匹配行执行相同的操作。
SetNull SET NULL:对父表中的行执行操作;将子表中任何匹配的外键列设置为 NULL
SetDefault SET DEFAULT:当前在 NDB 集群中不支持。

另请参阅 MySQL 手册 中的 外键约束

ForeignKey::getName()

说明

检索调用该方法的 ForeignKey 实例的名称。

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

.

返回值

ForeignKey 的名称。

ForeignKey::getParentTable()

说明

检索调用该方法的 ForeignKey 实例的父表。

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

.

返回值

指向 ForeignKey 的父表的指针。

ForeignKey::getChildTable()

说明

检索调用该方法的 ForeignKey 实例的子表。

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

.

返回值

指向此 ForeignKey 的子表的指针。

ForeignKey::getParentColumnCount()

说明

检索此 ForeignKey 的父表中的列数。

签名
unsigned getParentColumnCount
      (
        void
      ) const
参数

.

返回值

父表中的列数。

ForeignKey::getChildColumnCount()

说明

检索此 ForeignKey 的子表中的列数。

签名
unsigned getChildColumnCount
      (
        void
      ) const
参数

.

返回值

子表中的列数。

ForeignKey::getParentIndex()

说明

如果子表引用父表的主键,则返回 0。

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

.

返回值

请参阅说明。

ForeignKey::getChildIndex()

说明

如果使用子表的主键解析子引用,则返回 0。

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

.

返回值

请参阅说明。

ForeignKey::getParentColumnNo()

说明

此方法获取给定索引的父表中外键列的序号。有关在 NDB API 中处理列的信息,请参阅 Column::getColumnNo() 的文档。

签名
int getParentColumnNo
    (
      unsigned no
    ) const
参数

.

返回值

列的序号。

ForeignKey::getChildColumnNo()

说明

此方法获取给定索引的子表中外键列的序号。有关在 NDB API 中处理列的信息,请参阅 Column::getColumnNo() 的文档。

签名
int getChildColumnNo
    (
      unsigned no
    ) const
参数

.

返回值

列的序号。

ForeignKey::getOnUpdateAction()

说明

获取外键的 ON UPDATE 操作。这是 ForeignKey::FkAction,并且具有 NoActionRestrictCascadeSetNull 之一的值。

签名
FkAction getOnUpdateAction
    (
      void
    ) const
参数

.

返回值

列的序号。

ForeignKey::getOnDeleteAction()

说明

获取外键的 ON DELETE 操作。这是 ForeignKey::FkAction,并且具有 NoActionRestrictCascadeSetNull 之一的值。

签名
FkAction getOnDeleteAction
    (
      void
    ) const
参数

.

返回值

列的序号。

ForeignKey::setName()

说明

设置调用该方法的 ForeignKey 实例的名称。

签名
void setName
    (
      const char*
    )
参数

ForeignKey 的名称。

返回值

.

ForeignKey::setParent()

说明

设置 ForeignKey 的父表,给定表的引用,以及可选的用作外键的索引。

签名
void setParent
    (
      const Table&,
      const Index* index = 0,
      const Column* cols[] = 0
    )
参数

Table 的引用(必需)。可选,使用指定列或多列的索引。

返回值

.

ForeignKey::setChild()

说明

设置 ForeignKey 的子表,给定表的引用,以及可选的用作外键的索引。

签名
void setChild
    (
      const Table&,
      const Index* index = 0,
      const Column* cols[] = 0
    )
参数

Table 的引用(必需)。可选,使用指定列或多列的索引。

返回值

.

ForeignKey::setOnUpdateAction()

说明

设置外键的 ON UPDATE 操作。

签名
void setOnUpdateAction
  (
    FkAction
  )
参数

要执行的 ON UPDATE 操作。这必须是 ForeignKey::FkAction,其值为 NoActionRestrictCascadeSetNull 之一。

返回值

ForeignKey::setOnDeleteAction()

说明

设置外键的 ON DELETE 操作。

签名
void setOnUpdateAction
  (
    FkAction
  )
参数

要执行的 ON UPDATE 操作,类型为 ForeignKey::FkAction。必须是 NoActionRestrictCascadeSetNull 之一。

返回值

ForeignKey::getObjectStatus()

说明

获取此 ForeignKey 对象的对象状态(请参阅 Object::Status)。

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

.

返回值

ForeignKey 对象的状态,作为 Object::Status 类型的值。有关可能的值及其解释,请参阅此类型的文档。

ForeignKey::getObjectId()

说明

获取此 ForeignKey 对象的对象 ID(请参阅 Object::getObjectId())。

签名
virtual int getObjectId
    (
      void
    ) const
参数

.

返回值

ForeignKey 对象的 ID,由 Object::getObjectId() 返回。

ForeignKey::getObjectVersion()

说明

获取此 ForeignKey 对象的对象版本(请参阅 Object::getObjectVersion())。

签名
virtual int getObjectVersion
    (
      void
    ) const
参数

.

返回值

ForeignKey 对象的版本号(整数),由 Object::getObjectVersion() 返回。