メイン コンテンツをスキップする

tMysqlLastInsertIdで最後に挿入したレコードのIDの取得

以下のJavaシナリオでは、Mysqlデータベースへの接続を開き、定義済みのデータをデータベースに書き込み、最終的に既存の接続で最後に挿入されたIDをフェッチするジョブを作成します。

  • [Palette] (パレット)から、tMysqlConnectiontMysqlCommittFileInputDelimitedtMysqlOutputtMysqlLastInsertIdtLogRowというコンポーネントをデザインワークスペースにドロップします:

  • [On Subjob Ok] (サブジョブがOKの場合)リンクを使って、tMysqlConnectiontFileInputDelimited に接続させます。

  • [On Subjob Ok] (サブジョブがOKの場合)リンクを使って、tFileInputDelimitedtMysqlCommitに接続させます。

  • [Row Main] (行>メイン)リンクを使用して、tFileInputdelimitedを他の3つのコンポーネントに接続します。

  • デザインワークスペースでtMysqlConnectionを選択します。

  • [Component] (コンポーネント)タブをクリックして、tMysqlConnectionの基本設定を定義します。

  • [Basic settings] (基本設定)ビューで、接続の詳細を手動で設定します。メタデータデータベース接続エントリーとしてローカルに保存した場合は、コンテキスト変数リストから選択し、Ctrl + スペースを使って対応するフィールドをクリックします。メタデータの詳細は、Talend Studioでメタデータを管理をご覧ください。

  • デザインワークスペースでtMysqlCommitを選択し、[Component] (コンポーネント)タブをクリックし基本設定を定義します。

  • 複数の接続を使用している場合は、[Component List] (コンポーネントリスト)で該当するtMysqlConnectionを選択します。

  • デザインワークスペースでtFileInputDelimitedを選択します。

  • [Component] (コンポーネント)タブをクリックして、tFileInputDelimitedの基本設定を定義します。

  • 処理されたファイルへのパスを[File Name] (ファイル名)フィールドに入力します。このサンプルで使用しているファイルはCustomersです。

  • 行末を識別できる[Row separator] (行区切り)を定義します。行内のフィールドの区切りに使用する[Field separator] (フィールド区切り)を定義します。

  • 必要に応じて、ヘッダー、フッター、処理される行数を設定するために使われます。このシナリオでは、ヘッダーは1つです。

  • [Edit Schema] (スキーマを編集)の横にある[...]ボタンをクリックして、次のコンポーネントに渡すデータを定義します。

このシナリオでは、スキーマはnameおよびageという2つのカラムで構成されています。前者には従業員3人の名前、後者にはそれぞれの対応する年齢が保存されています。

  • デザインワークスペースでtMysqlOuptputを選択します。

  • [Component] (コンポーネント)タブをクリックして、tMySqlOuptputの基本設定を定義します。

  • [Use an existing] (既存の接続を使用)チェックボックスをオンにします。

  • [Table] (テーブル)フィールドで、従業員のリストを書き込むテーブルの名前を入力します。このサンプルではemployeeです。

  • [Action on table] (テーブルでのアクション)リストおよび[Action on data] (データでのアクション)リストで、該当するアクションを選択します。このサンプルでは、テーブルでのアクションはなく、データでのアクションはInsertです。

  • [Sync columns] (カラムを同期)をクリックして、カラムを前のコンポーネントと同期します。この例では、MySqlデータベーステーブルに挿入するスキーマは、nameおよびageという2つのカラムで構成されています。

  • デザインワークスペースでtMysqlLastInserIdを選択します。

  • [Component] (コンポーネント)タブをクリックして、tMySqlLastInserIdの基本設定を定義します。

  • 複数の接続を使用している場合は、[Component List] (コンポーネントリスト)で該当するtMysqlConnectionを選択します。

  • [Sync columns] (カラムを同期)をクリックして、カラムを前のコンポーネントと同期します。tMysqlLastInsertIdの出力スキーマで、既存の接続に最後に挿入されたIDを取得する読み取り専用のカラムlast_insert_idを確認できます。

エントリー数が非常に多い場合は、[Type] (タイプ)ドロップダウンリストからデータ型Longを選択できます。

  • デザインワークスペースで、tLogRowを選択して、[Component] (コンポーネント)タブをクリックし、基本設定を定義します。詳細は、tLogRowをご覧ください。

  • ジョブを保存し、F6を押して実行します。

tMysqlLastInsertIdは、既存の接続の各行に、最後に挿入したIDを取得しました。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。