0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

My SQL Workbenchで、データを一括挿入したい

Posted at

きっかけ

Herokuにデプロイしたアプリに、データを一気に追加したい。
そこで、MySQLWorkbenchからCSVファイルでのインポートを試みたが、何度やってもエラーで追加できない。
ちなみにその時のエラーはこれ。

unhandled expectation: 'cp932' codec can't decode byte 0x81 in position 61: illegal multibyte sequence

CSVファイルの文字形式がcp932になっていることが原因のようだが、何度元のCSVファイルを確認しても、UTF-8で出力している。
また、phpMyAdminで、同じCSVファイルからインポートすると、問題なくインポートできる状況。

解決?策

少し手間ではあるが、ローカルのphpMyAdminでインポートができることを利用し、今回はごり押しで解決していく。

使うのは、SQL文。

1)phpMyAdminで、テーブルをエクスポートする

Itemsのテーブルをエクスポートする。この時、SQL形式を選択しておく。

2)エクスポートしたSQLファイルを開く

3)開いたファイルの中から、インサートのSQL文をコピーする

この部分↓

--
-- テーブルのデータのダンプ `items`
--

INSERT INTO `items` (`カラム名`) VALUES
('データ1'),
('データ2');

4)SQL文を、MySQLWorkbenchで実行する

追加したいテーブルを選択。
おそらくこんな画面が表示される。
初めから書いてある、SQL文は不要なので削除する。
Group 18.jpg

次に、コピーしたインサートのSQL文をペーストして、雷マークで実行!
Group 19.jpg

※SQLのエラーなどは、下部のOutputの欄で確認できる。

さいごに

今回のは、解決策というか代替案で乗り切っている形になってしまった。
調べてできることはしたつもりだが、中々解決までの道筋は立たなかった。
Herokuでデプロイしたアプリを、phpMyAdminにつなげる方法も調べて試してみたが、上手くいかなかった。システムの根本の仕組みをよく理解してないのがいかんのかなぁ…。
また、今回のCSVでのエラーはメンターに見てもらったが解決に至らずだった。
ま、分からん問題をうんうん考え続けるより、代替案で形にするのも大事だとは思うので切り替えよう。

こちらの投稿は、素人ほぼ独学プロウラマーのメモ書き投稿のため、参考程度にご活用ください。
また、質問やアドバイスなどコメントいただけますと、大変ありがたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?