tMysqlLastInsertIdで最後に挿入したレコードのIDの取得
以下のJavaシナリオでは、Mysqlデータベースへの接続を開き、定義済みのデータをデータベースに書き込み、最終的に既存の接続で最後に挿入されたIDをフェッチするジョブを作成します。
-
[Palette] (パレット)から、tMysqlConnection、tMysqlCommit、tFileInputDelimited、tMysqlOutput、tMysqlLastInsertId、tLogRowというコンポーネントをデザインワークスペースにドロップします:
-
[On Subjob Ok] (サブジョブがOKの場合)リンクを使って、tMysqlConnectionをtFileInputDelimited に接続させます。
-
[On Subjob Ok] (サブジョブがOKの場合)リンクを使って、tFileInputDelimitedをtMysqlCommitに接続させます。
-
[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を取得しました。