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のエラーが発生しました。
直し方 — 後ろに付いている文を見て、相手のテーブルの定義や権限を確かめます。
変数が見つからない
名前に $ で変数を書いたが、その名前の変数がないときに出ます。
変数: 対象日が設定されていないため処理を中断しました。
直し方 — 変数の名前を見直すか、プロジェクトに変数を追加します。$ で始めて書いた語は、すべて変数として扱われます。