トリガーを変換する
クエリ 変換を使用して、SQL trigger を MongoDB Atlas Triggersにインポートして変換することができます。 クエリ ドライバーは、trigger を変換する際に、プロジェクトに定義された SQL コードとリレーショナル スキーマを考慮します。
このタスクについて
クエリ ドライバーはAIテクノロジーを使用しますが、長いクエリや複雑なクエリ、トリガー、または保存された手順を変換できない場合があります。 正しく変換されないクエリもあれば、まったく変換されないクエリもあります。
クエリ ドライバーは、リレーショナル スキーマ、MongoDB スキーマ、現在のプロジェクト内のマッピング ルールを使用して、クエリを変換する方法を決定します。 クエリがリレーショナル スキーマにないテーブルを参照する場合、または MongoDB コレクションにマップされていない場合、変換が失敗したり不正確になることがあります。
変換されたクエリ、trigger、ビュー、保存された手順はプロジェクトに保存され、プロジェクトのインポートおよびエクスポート後も保持されます。
SQLクエリは40 、 000テキスト文字に制限されています。
左側の [ Query Converterペインで以前の変換履歴を表示できます。 各変換には、変換の結果を示す アイコンがあります。 オブジェクトの横に アイコンがない場合、変換はまだ試行されていません。
Icon説明スピナー変換が実行中です。緑色のチェックマーク変換は成功しました。赤色の句読点前回の試行では変換は失敗しました。
始める前に
関係データベースには少なくとも 1 つの変換対象の trigger が必要です。
クエリ 変換によって生成されたコードは、本番環境に配置する前に、必ず確認とテストを行ってください。
手順
SQL trigger の変換
左側のペインからTriggersの下の trigger の名前をクリックします。
Tip
Filterテキスト ボックスを使用して、オブジェクト名と SQL 構文に基づいて、クエリ、保存済み手順、trigger、ビューをフィルタリングできます。
SQL trigger コードはImported Triggerペインに表示されます。
[ Convert ] ボタンをクリックします。 クエリ ドライバーがコードを変換するまで待ちます。
変換された MongoDB コードはConverted MongoDB Queryペインに表示されます。
クエリ 変換にエラーが発生した場合は、 Converted MongoDB Queryペインで詳細を表示できます。
をクリックしますConverted MongoDB Queryペインの [] アイコンを使用して、MongoDB コードをクリップボードにコピーします。
Atlas での trigger の作成
Overview画面から [ Triggers ] をクリックします。
[Add Trigger] をクリックします。
Tip
変換された MongoDB コードには、trigger を作成するために Atlas で選択する必要があるすべての変数のコメント行が含まれています。 例:
// Collection Name: products // Operation Type: Insert Nameテキスト フィールドに trigger の名前を入力します。
[ Cluster Name 、 Database Name 、 Collection Nameを選択します。
をOperation Type Insert Documentとして選択します。
Document PreimageとFull Documentスイッチをオンに切り替えます。
変換された MongoDB コードをFunctionテキスト フィールドに入力します。
重要
生成された Atlas コード内の
clusterName
とdatabaseName
を、クラスターとデータベース名と一致するように更新します。Atlas trigger を保存するには、 Saveをクリックします。
例
MySQL trigger の変換
次の例は、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 } }); } };