説明
この変数はV2.1バージョンから導入されました。
機能の概要
foreign_key_checksは、DML/DDL操作時に外部キー制約をチェックするかどうかを設定します。
適用対象
この変数はOceanBaseデータベースのMySQLモードでのみ適用されます。
権限要件
変数の確認
グローバルレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。セッションレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはinformation_schema.SESSION_VARIABLESビュー(MySQLモード)を使用してセッションシステム変数の値を確認できます。
変数の変更
グローバル有効
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは
SUPERまたはALTER SYSTEM権限を持っている必要があります。
セッション有効
sysテナントとすべてのユーザーテナントは、自身のテナントにおけるセッションシステム変数の値を直接変更できます。
プロパティの説明
プロパティ |
説明 |
|---|---|
| パラメータタイプ | Bool |
| デフォルト値 | 1 |
| 値の範囲 |
|
| 適用範囲 |
|
| 変更は可能か | はい。SET ステートメントを使用して変更できます。 |
使用方法
OceanBaseデータベースでは、外部キー制約のチェックがデフォルトで有効になっています。このチェックのオン/オフは、テナント変数 foreign_key_checks によって制御されます。外部キー制約を作成する際、外部キー名を指定しない場合、システムは自動的に一意の名前を割り当てます。この自動生成される名前は、テーブル名の _OBFK_ と作成時刻のタイムスタンプを組み合わせたものです。例:t1_OBFK_1627747200000000。
設定例
DML/DDL実行時に外部キー制約をチェックするように設定します。
セッション単位で有効
obclient> SET foreign_key_checks = ON;または
obclient> SET foreign_key_checks = 1;グローバル単位で有効
obclient> SET GLOBAL foreign_key_checks = ON;または
obclient> SET GLOBAL foreign_key_checks = 1;