Docs Menu
Docs Home
/
Relational Migrator
/ /

トリガーを変換する

項目一覧

  • このタスクについて
  • 始める前に
  • 手順
  • 詳細

クエリ 変換を使用して、SQL trigger を MongoDB Atlas Triggersにインポートして変換することができます。 クエリ ドライバーは、trigger を変換する際に、プロジェクトに定義された SQL コードとリレーショナル スキーマを考慮します。

  • クエリ ドライバーはAIテクノロジーを使用しますが、長いクエリや複雑なクエリ、トリガー、または保存された手順を変換できない場合があります。 正しく変換されないクエリもあれば、まったく変換されないクエリもあります。

  • クエリ ドライバーは、リレーショナル スキーマ、MongoDB スキーマ、現在のプロジェクト内のマッピング ルールを使用して、クエリを変換する方法を決定します。 クエリがリレーショナル スキーマにないテーブルを参照する場合、または MongoDB コレクションにマップされていない場合、変換が失敗したり不正確になることがあります。

  • 変換されたクエリ、trigger、ビュー、保存された手順はプロジェクトに保存され、プロジェクトのインポートおよびエクスポート後も保持されます。

  • SQLクエリは40 、 000テキスト文字に制限されています。

  • 左側の [ Query Converterペインで以前の変換履歴を表示できます。 各変換には、変換の結果を示す アイコンがあります。 オブジェクトの横に アイコンがない場合、変換はまだ試行されていません。

    Icon
    説明
    スピナー
    変換が実行中です。
    緑色のチェックマーク
    変換は成功しました。
    赤色の句読点
    前回の試行では変換は失敗しました。
  • 関係データベースには少なくとも 1 つの変換対象の trigger が必要です。

  • クエリ 変換によって生成されたコードは、本番環境に配置する前に、必ず確認とテストを行ってください。

1

[ Code Generationタブから、 Query Converterペインをクリックします。

クエリ 変換に初めてアクセスする場合、またはセッションが期限切れになった場合は、 Log In To Use Query Converterをクリックして Atlas の認証情報を提供します。

2
  • プロジェクトでクエリ 変換を初めて使用する場合は、[ Import From Databaseをクリックします。

  • プロジェクトですでに SQL コードを変換している場合は、左のペインの [ Manage Database Objects ] ボタンをクリックします。

3
  1. Import Database Objectsモーダルで、次をクリックします: Databaseの横にあるアイコン。

  2. をクリックしますスキーマの横にある アイコン。

  3. をクリックしますTriggersの横にあるアイコン。

    Tip

    変換のtriggerを切り替えるには、クリックしますtriggerの名前の横にあるアイコン。 すべての trigger がデフォルトで選択されています。

  4. [Save] をクリックします。

    データベース スキーマ内の各 trigger のコードはプロジェクトにインポートされ、 Triggersの下の左のQuery Converterペインに表示されます。

4
  1. 左側のペインからTriggersの下の trigger の名前をクリックします。

    Tip

    Filterテキスト ボックスを使用して、オブジェクト名と SQL 構文に基づいて、クエリ、保存済み手順、trigger、ビューをフィルタリングできます。

    SQL trigger コードはImported Triggerペインに表示されます。

  2. [ Convert ] ボタンをクリックします。 クエリ ドライバーがコードを変換するまで待ちます。

    変換された MongoDB コードはConverted MongoDB Queryペインに表示されます。

    クエリ 変換にエラーが発生した場合は、 Converted MongoDB Queryペインで詳細を表示できます。

  3. をクリックしますConverted MongoDB Queryペインの [] アイコンを使用して、MongoDB コードをクリップボードにコピーします。

5
  1. Atlas アカウントにログインします。

  2. Overview画面から [ Triggers ] をクリックします。

  3. [Add Trigger] をクリックします。

    Tip

    変換された MongoDB コードには、trigger を作成するために Atlas で選択する必要があるすべての変数のコメント行が含まれています。 例:

    // Collection Name: products
    // Operation Type: Insert
  4. Nameテキスト フィールドに trigger の名前を入力します。

  5. [ Cluster NameDatabase NameCollection Nameを選択します。

  6. Operation Type Insert Documentとして選択します。

  7. Document PreimageFull Documentスイッチをオンに切り替えます。

  8. 変換された MongoDB コードをFunctionテキスト フィールドに入力します。

    重要

    生成された Atlas コード内の clusterNamedatabaseNameを、クラスターとデータベース名と一致するように更新します。

  9. Atlas trigger を保存するには、 Saveをクリックします。

次の例は、Atlas への MySQL trigger 変換を示しています。

CREATE TRIGGER TRIGGER_UPPER_PRODUCTS
BEFORE INSERT
ON MYDATABASE.PRODUCTS
FOR EACH ROW
SET NEW.FULL_NAME = UPPER(new.FULL_NAME)
// The relational database trigger has been converted to MongoDB Atlas Triggers format.
// To create a trigger, open your Atlas project (https://cloud.mongodb.com) and choose Triggers
// For more on Atlas triggers see the docs: https://www.mongodb.com/ja-jp/docs/atlas/triggers/
// Create your trigger using the following settings and paste the code into the Function section:
// Watch Against: Collection
// Cluster Name: Ensure clusterName matches selection in Atlas Trigger configuration
// Database Name: Ensure databaseName matches selection in Atlas Trigger configuration
// Collection Name: products
// Operation Type: Insert
// Full Document: On
// Document Preimage: Off
exports = async function(changeEvent) {
const clusterName = "clusterName";
const databaseName = "databaseName";
const { fullDocument } = changeEvent;
const db = context.services.get(clusterName).db(databaseName);
const collection = db.collection('products');
if (fullDocument && fullDocument.fullName) {
fullDocument.fullName = fullDocument.fullName.toUpperCase();
await collection.updateOne({ _id: fullDocument._id }, { $set: { fullName: fullDocument.fullName } });
}
};
  • ビューの変換

  • クエリの変換

  • 保存された手順の変換

戻る

保存された手順の変換