IntelliJ IDEA 2026.1 Help

仮想外部キー

明示的に定義された外部キーを使用したくない場合があります。 外部キーを使用しない理由としては、パフォーマンスの問題(CRUD 操作)、データベースの特性(ClickHouse や Apache Cassandra などのデータベースは外部キーをサポートしていません)、一時テーブルの使用(テスト用)、個人的な理由などが挙げられます。

この場合でも、データベースコードを変更せずに外部キーリレーションを作成できます。 これを行うには、 仮想外部キーを使用します。 仮想外部キーは、IDE 仮想オブジェクトです。 外部キーの代わりに、仮想キーはデータベースコードで定義されません。

次のクエリ例を検討してください。

SELECT * FROM activity JOIN visitor ON visitor_id = visitor.id

visitor_id がデータベースの外部キーとして定義されていないと仮定します。 この JOIN 句では、 activity テーブルの visitor_id フィールドと visitor テーブルの id フィールド間のこの仮想関係を引き続き使用できます。 この関係を保存して後で使用することも、正規表現を使用して設定で仮想外部キーの ルールを構成することもできます。

仮想外部キー

仮想外部キー関係は external-data-<data_source_name>.xml に保存されます。 XML ファイルの別の名前や、このファイルを保存する別の場所を選択できます。 XML ドキュメントへのパスを変更または表示するには、 Shift+Enter を押してデータソース設定を開き、 オプション タブをクリックして、 仮想オブジェクトと属性 フィールドを確認します。

仮想外部キー (仮想外部キー) は、 データベース ツールウィンドウにあります。

データベースの仮想外部キー

仮想外部キーを作成する

  1. データベース ツールウィンドウで、テーブルのノードまでデータソースツリーを展開します。

  2. テーブルノードを右クリックし、 新規|仮想外部キー を選択します。

  3. 開いた 変更 ダイアログで、仮想外部キーの名前を 名前 フィールドに入力します。

  4. ターゲットテーブル ペインで、ターゲット表の名前を指定します。

  5. ペインで、 追加 ボタン(追加ボタン )をクリックします。

  6. 列名 フィールドに、子テーブルの列の名前を指定します。

  7. ターゲット名 フィールドに、ターゲット表の列の名前を指定します。

  8. 仮想外部キーを追加するには、 OK をクリックします。

  9. <data_source_name> の外部データを保存 ダイアログが開いたら、 external-data-<data_source_name>.xml ファイルのディレクトリを指定し、 保存する をクリックします。

「変更」で仮想外部キーを作成するダイアログ
  1. オン 句のテーブル関係をクリックし、 Alt+Enter を押します。

  2. テーブルのリレーションを保管 を選択します。

  3. <data_source_name> の外部データを保存 ダイアログが開いたら、 external-data-<data_source_name>.xml ファイルのディレクトリを指定し、 保存する をクリックします。

テーブルのリレーションを保管

仮想外部キーのルールを作成する

正規表現を使用して、IntelliJ IDEA が 1 つのテーブルの列を別のテーブルの列に向けるルールを作成できます。

  1. 設定を開き(Ctrl+Alt+S)、 データベース | その他 に移動します。

  2. 仮想外部キー セクションを見つけます。

  3. テーブルで、 追加 ボタン (click the Add button) をクリックします。

  4. カラムのパターン セルをダブルクリックし、仮想外部キーとして使用する列名に一致する正規表現を入力します。

  5. ターゲットカラムのパターン セルをダブルクリックし、置換パターンを入力します。 置換パターンは カラムのパターン 式からの一致を使用し、正規表現として解釈されます。

    確認 ボタン (the Check button) を使用してルールを確認できます。 ルールを選択して 確認 ボタンをクリックすると、 ルールデバッガー ダイアログが開きます。 結果は 生成パターン フィールドで確認できます。 生成パターン フィールドの結果の式は、目的の ターゲットのテーブル.列 パターンと一致する必要があります。

    仮想外部キーのルールを作成する

仮想外部キーのデバッグルール

  1. 設定を開き(Ctrl+Alt+S)、 データベース | その他 に移動します。

  2. 仮想外部キー セクションを見つけます。

  3. ルールを選択し、 確認 ボタン (the Check button) をクリックします。

  4. ルールデバッガー ダイアログで、次のフィールドに入力します。

    • 列のパターン: 仮想外部キーとして使用する列名に一致する正規表現。

      例: _id 後置記号を使用する列を記述するには、 (.*)_(?i)id 正規表現を使用します。 この正規表現は、 visitor_idvisitor_Id などの列を検出し、 visitors を最初のキャプチャーグループ($1 )としてキャプチャーします。

    • ターゲット列のパターン: 列のパターン 式の一致を使用し、正規表現として解釈される置換パターン。 結果は 生成パターン フィールドで確認できます。 結果は、 ソース列 フィールドに列名の例を指定した場合にのみ表示されることに注意してください。

      例: 列のパターン 式からキャプチャーされたグループ($1 )を使用し、ドット( )と id を追加できます。 この式は、主キーとして使用できる visitor.id 参照を生成します。

      メモ: ターゲット列のパターン 置換パターンは、キャプチャーされたグループを使用して パターンを生成する フィールドに正規表現パターンを生成するために使用されます。 式の例($1\\.(?i)id )のドットのように文字通り翻訳された記号をダブルエスケープしたことを確認してください。

    • ソース列: 仮想外部キーとして使用する列名の例。

    • 生成パターン: ターゲットのテーブル.列 名に一致する、生成された読み取り専用の正規表現パターン。 生成パターン は、 ターゲット列のパターン の置換パターンによって生成される結果です。

    • ターゲットのテーブル.列: ソース列 の仮想外部キーの主キーとして使用されるテーブル名と列名の例。

    仮想外部キーのデバッグルール

コード補完で仮想外部キーを表示する

IntelliJ IDEA は、 JOIN ステートメントの可能なコード補完提案のリストを生成できます。 コード補完リストには、 JOIN ステートメントのテーブルの列と同じ名前を持つ他のテーブルの列の提案が含まれます。

たとえば、 actor テーブルに次のカラムがあるとします: actor_idfirst_namelast_namelast_update。 候補リストには、他のテーブルに存在するこれらのカラム名前の補完候補が表示されます。

  1. Ctrl+Alt+S を押して設定を開き、 エディター | 一般 | コード補完 に移動します。

  2. SQL セクションまでスクロールし、 名前の一致に基づいて厳密でない外部キーを提案する を選択します。

    名前の一致に基づいて非厳密な外部キーを提案する
    名前の一致に基づいて厳密でない外部キーを提案するはオフです
2026 年 3 月 30 日