コンテンツにスキップ

MySQL

ノード上のデータを、MySQL のテーブルに書き込みます。

データが大きいときは、Hyper nehanの速い処理で書き出せます。出し先を選ぶ一覧でも、この出し先には印が付きます。

ダイアログ内設定項目

接続情報必須
MySQL の接続情報を選びます。はじめは更新日がいちばん新しいものが入っています。一覧に出るのは、自分が参照できる接続情報だけです。
対象のテーブル名必須
書き込み先のテーブルを、一覧から選ぶか手で入れます。ない名前を入れると新しく作られます。欄の左の印で、その名前のテーブルがもうあるかどうかが分かります。変数を差し込めます。
スキーマ
書き込み先の列名と列型を 1 列ずつ決めます。開いた時点では、nehan 上の列名と、それに近い MySQL の型が入っています。
書き込み設定
テーブルがもうあったときにどうするかを決めます。3 つから選びます。
指定した行数ごとに保存する
何行ずつまとめて送るかです。既定は 1000 です。大きくすると送る回数は減りますが、MySQL 側の負荷が上がってエラーになることがあります。

書き込み設定の 3 つの違い

追記
前からあったデータはそのままで、うしろに足します。既定はこちらです。
上書き(DROP TABLE)
テーブルごと作り直してから書きます。列の並びや型も作り直されます。テーブルを消す権限が要ります。
上書き(TRUNCATE)
テーブルはそのままで、中の行だけを消してから書きます。列の並びや型は変わりません。相手のテーブルに外部キーや権限の都合があるときは、こちらを選びます。

選べる列型

MySQL の列型 11 種

INTEGER / DOUBLE / BOOLEAN / VARCHAR(255) / TEXT / MEDIUMTEXT / LONGTEXT / DATE / DATETIME / TIMESTAMP / TIME

エラーと対処

どのエラーも、直すのは「設定の編集」ダイアログか、MySQL 側の設定です。

テーブル名が空

テーブル名を入れずに実行したときに出ます。

設定の編集で、出力先のテーブル名を入力してください。

直し方 — 書き込み先のテーブル名を入れます。

テーブルを消す権限がない

「上書き(DROP TABLE)」を選んだが、ユーザーにテーブルを消す権限がないときに出ます。

テーブルをDROPするユーザー権限がないので処理を中止しました。

直し方 — 「上書き(TRUNCATE)」に変えるか、MySQL 側で DROP を許してもらいます。

テーブルを作る権限がない

ない名前のテーブルに書こうとしたが、ユーザーにテーブルを作る権限がないときに出ます。

テーブルをCREATEするユーザー権限がないので処理を中止しました。

直し方 — もうあるテーブルを選び直すか、MySQL 側で CREATE を許してもらいます。

相手にない列がある

「追記」で、相手のテーブルにない列を書こうとしたときに出ます。

出力先のテーブルに存在しない列が含まれています。

直し方 — スキーマの列名を相手のテーブルに合わせるか、その列を手前のノードで落とします。

値が列の長さに収まらない

文字列の値が、相手の列の長さを超えているときに出ます。

列:商品名 の文字数が多すぎるため出力が出来ませんでした。データベースの設定を確認するか、文字数を少なくしてください。

直し方 — スキーマでその列を TEXT などの長い型に変えるか、出す前に文字数を切り詰めます。

つないでいる間に切れた

書き込みの途中で MySQL とのつながりが切れたときに出ます。

条件値が不正です。データ型が異なる値が入力されている可能性があります。

直し方 — 「指定した行数ごとに保存する」を小さくして、1 回に送る量を減らします。

そのほかの MySQL のエラー

上のどれにも当てはまらないときは、MySQL が返した文がそのまま付きます。

MySQLのエラーが発生しました。

直し方 — 後ろに付いている文を見て、相手のテーブルの定義や権限を確かめます。

変数が見つからない

名前に $ で変数を書いたが、その名前の変数がないときに出ます。

変数: 対象日が設定されていないため処理を中断しました。

直し方 — 変数の名前を見直すか、プロジェクトに変数を追加します。$ で始めて書いた語は、すべて変数として扱われます。

関連