---
title: "foreign_key_checks - OceanBase 数据库 V4.2.5 | OceanBase 文档中心"
description: foreign_key_checks 说明 该变量从 V2.1 版本开始引入。 功能描述 foreign_key_checks 用于设置是否在 DML/DDL 中检查外建约束。 功能适用性 该变量仅适用于 OceanBase 数据库 MySQL 模式。 权限要求 查询变量 Global 级别 sys 租户和所有用户租…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.2.5 LTS

# foreign_key_checks

更新时间：2026-04-15 17:17:00

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.5/zh-CN/700.reference/800.configuration-items-and-system-variables/200.system-variable/300.global-system-variable/2700.foreign_key_checks-global.md)

#### 说明

该变量从 V2.1 版本开始引入。

## 功能描述

`foreign_key_checks` 用于设置是否在 DML/DDL 中检查外建约束。

#### 功能适用性

该变量仅适用于 OceanBase 数据库 MySQL 模式。

## 权限要求

- 查询变量

     - Global 级别

      `sys` 租户和所有用户租户均可以使用 `SHOW VARIABLES` 语句或视图 `information_schema.GLOBAL_VARIABLES`（MySQL 模式）查看 Global 系统变量的值。
     - Session 级别

      `sys` 租户和所有用户租户均可以使用 `SHOW VARIABLES` 语句或视图 `information_schema.SESSION_VARIABLES`（MySQL 模式）查看 Session 系统变量的值。
 - 修改变量

     - Global 生效

           - `sys` 租户可以直接修改 Global 系统变量的值。
           - MySQL 用户租户需要拥有 `SUPER` 或 `ALTER SYSTEM` 权限才能修改 Global 系统变量的值。
     - Session 生效

      `sys` 租户和所有用户租户均可以直接修改本租户的 Session 系统变量的值。

## 属性说明

| **属性** | **描述** |
| --- | --- |
| 参数类型 | bool |
| 默认值 | 1 |
| 取值范围 | - 0：不检查外键约束 - 1：检查外键约束 |
| 生效范围 | - Global - Session |
| 是否可修改 | 是，支持通过 `SET` 语句修改。 |

## 使用说明

外键检查由 `foreign_key_checks` 变量控制，该变量默认启用。通常，在正常操作期间启用此变量以强制执行参照完整性。

在以下情况下禁用 `foreign_key_checks` 会对数据库带来正面影响：

- 删除由外键约束引用的表。只有在禁用 `foreign_key_checks` 后才能删除引用的表。删除表时，表上定义的约束也会被删除。
 - 以不同于外键关系所需的顺序重新加载表。
 - 进行数据导入操作时，可以关闭外键检查，以加速数据导入。
 - 对具有外键关系的表执行 `ALTER TABLE` 操作。​

同样，禁用 `foreign_key_checks` 也会带来一些负向影响：

- 允许删除包含带有外键的表的数据库，这些表被数据库外的表引用。
 - 允许删除带有其他表引用的外键的表。​

启用 `foreign_key_checks` 不会触发表数据的扫描，这意味着当 `foreign_key_checks` 重新启用时，在禁用 `foreign_key_checks` 时添加到表中的行不会检查一致性。

## 配置示例

- Session 生效

  ```shell
  obclient> SET foreign_key_checks=1;

  ```
 - Global 生效

  ```shell
  obclient> SET GLOBAL foreign_key_checks=1;

  ```

## 相关文档

[外键约束](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001503525)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
