tencent cloud

Data Transfer Service

外部キー依存関係チェック

ダウンロード
フォーカスモード
フォントサイズ
最終更新日: 2026-11-02 12:22:07
AI翻訳

チェック詳細

MySQL/MariaDB/Percona/TDSQL-C MySQL間のデータ移行:外部キー依存関係はCASCADE、SET NULL、RESTRICT、NO ACTION、SET DEFAULTをサポートします。検証項目で外部キー依存関係スイッチを有効にする必要があります。
MySQL/MariaDB/Percona/TDSQL-C MySQL間のデータ同期:外部キー依存関係はNO ACTION、RESTRICTにのみ設定できます。その他の値に設定すると検証でエラーが発生しますが、ユーザーはエラーを修正するか、エラーを無視してタスクを続行するかを選択できます。
TDSQL MySQLの移行と同期:外部キー依存関係はNO ACTION、RESTRICTにのみ設定できます。その他の値に設定すると検証でエラーが発生しますが、ユーザーはエラーを修正するか、エラーを無視してタスクを続行するかを選択できます。
TDSQL Boundlessデータ移行:外部キー依存データはサポートされていません。ソースデータベースに外部キーデータが存在する場合、検証でエラーが発生します。
一部のデータベース・テーブルを移行する場合、外部キー依存関係のあるテーブルはすべて揃っている必要があります。

外部キー依存パラメータの説明

MySQL系データベースで外部キーを設定する場合、削除と更新には4つの値を選択できます。
CASCADE:親テーブルでレコードを削除または更新すると、子テーブルは関連レコードを同期して削除または更新します。
SET NULL:親テーブルでレコードを削除または更新すると、子テーブルは関連レコードの外部キーフィールドが含まれる列をnullに設定します(子テーブルの外部キーはnot nullに設定できません)。
RESTRICT:親テーブルでレコードを削除または更新する際に、子テーブルにその親テーブルに関連するレコードが存在する場合、その親テーブルの削除リクエストは拒否されます。
NO ACTION:RESTRICTと同様に、最初に外部キーをチェックします。
SET DEFAULT:親テーブルでレコードを削除または更新すると、子テーブルは外部キー列をデフォルト値に設定しますが、InnoDBエンジンでは認識できません。

エラーを無視するか、外部キー依存関係の移行を有効にする

MySQL/MariaDB/Percona/TDSQL-C MySQL間のデータ移行では、外部キー依存関係はCASCADE、SET NULL、RESTRICT、NO ACTION、SET DEFAULTをサポートします。
DTSはデフォルトでRESTRICT、NO ACTIONをサポートしています。ソースデータベースから移行するデータに他のタイプの外部キー依存関係の設定が存在する場合、検証システムはエラーを報告します。ユーザーは以下の手順に従って検証項目で外部キー依存関係を有効にする必要があります。
1. データ移行操作の検証タスクページで、ソースデータベースに外部キー依存ルールCASCADE、SET NULL、SET DEFAULTが存在する場合、検証項目でエラーが発生します。検証項目の詳細を確認してください。
2. 状況に応じてエラーを無視するか、外部キー依存関係を移行するかを選択します。問題がないことを確認したら、リスク通知にチェックを入れ、確認をクリックします。
オプション
説明
外部キー依存関係チェックエラーを無視します。
チェックを入れると、既存の検証エラーを無視して、移行タスクを続行します。
ソースデータベースに外部キールールCASCADE、SET NULL、SET DEFAULTが存在する場合でも移行は可能ですが、エラーを無視すると、親テーブルで削除または更新操作が行われた際に、ターゲットデータベースとソースデータベースのデータ結果が一致しなくなる可能性があります。
外部キー依存関係を移行します。
チェックを入れると、CASCADE、SET NULL、SET DEFAULTタイプの外部キー依存関係の移行がサポートされます。ただし、DTSはタスク開始時にのみ外部キー依存関係をチェックし、既存データのターゲットデータベースへの移行における一貫性を保証します。
1. タスク移行中にソースデータベースの外部キー依存ルールを変更しないでください。変更すると、ターゲットデータベースのデータがソースデータベースと不一致になります。 移行中にソースデータベースの外部キールールをCASCADEからNO ACTIONに変更した場合、ターゲットデータベースの親テーブルの更新および削除操作は引き続き子テーブルに影響します。
2. 外部キールールがCASCADEまたはSET NULLの場合、外部キー依存関係を移行をチェックすると、フル移行段階でソースデータベースに短時間テーブルロックがかかり、影響時間は約5~10秒です。
3. データの一貫性を保証するために、増分同期段階では、外部キー関連テーブルのデータ転送は行レベル同期からテーブルレベル同期にダウングレードされ、パフォーマンスが低下する可能性があります。
3. 検証タスクを再実行します。

エラーを修正する

MySQL/MariaDB/Percona/TDSQL-C MySQL間のデータ同期:外部キー依存関係はNO ACTION、RESTRICTにのみ設定できます。その他の値に設定すると検証でエラーが発生しますが、ユーザーはエラーを修正するか、エラーを無視してタスクを続行するかを選択できます。エラーを修正する必要がある場合は、以下の手順に従って操作してください。
TDSQL MySQLの移行と同期:外部キー依存関係はNO ACTION、RESTRICTにのみ設定できます。その他の値に設定すると検証でエラーが発生しますが、ユーザーはエラーを修正するか、エラーを無視してタスクを続行するかを選択できます。エラーを修正する必要がある場合は、以下の手順に従って操作してください。
TDSQL MySQL(TDStore):外部キー依存データはサポートされていません。対応する外部キーパラメータの内容を削除してからでないと、タスクを続行できません。

外部キールールの変更

Windows操作ガイド

2. 左側のターゲットツリーで変更するテーブルを選択し、開いたテーブル編集画面で外部キータブをクリックし、外部キーパラメータを変更します。下図の通りです。

3. 変更が完了したら、保存をクリックします。
4. 検証タスクを再実行します。

Linux操作ガイド

2. 元の外部キー設定を削除します。
alter table `表名称1` drop foreign key `外键名称1`;
3. 外部キー設定を再度追加します。
alter table `表名称1` add constraint `外键名称2` foreign key `表名称1`(`列名1`) references `表名称2`(`列名1`)
on update no action on delete no action;
4. 検証タスクを再実行します。

移行対象の最適化

マイグレーションタスク設定を変更し、移行対象で関連関係を持つオブジェクトを選択します。
1. DTSコンソールで、対応するマイグレーションタスクを選択し、操作列で詳細>変更を選択します。
2. 移行対象で関連関係を持つオブジェクトを選択します。
3. 検証タスクを再実行します。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック