前提・実現したいこと
ここに質問の内容を詳しく書いてください。
macのmysqlのcharctersテーブルにcsvの2000行ほどあるデータを取り込もうとしたが
以下のようにエラーが出ております。
発生している問題・エラーメッセージ
エラーメッセージ ERROR 1300 (HY000): Invalid utf8 character string: '' ▼12/7更新(※「エラー後に試したこと」参照) ERROR 1265 (01000): Data truncated for column 'team_id' at row 1
実行したこと
以下を実施し、上記エラーがでております。 ▼csvファイルの文字コード # file --mime character.csv character.csv: text/plain; charset=utf-8 ▼csv取り込んだ際のコード LOAD DATA INFILE '/usr/local/var/mysql/character.csv' INTO TABLE characters FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n'; ▼mysqlの文字コード +--------------------------------------+------------------------------------------------------+ | Variable_name | Value | +--------------------------------------+------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/Cellar/mysql/8.0.12/share/mysql/charsets/ | | validate_password.special_char_count | 1 | +--------------------------------------+------------------------------------------------------+
エラー後に試したこと
以下を実施
character_set_client を utf8mb4 ⇛ utf8
character_set_connection を utf8mb4 ⇛ utf8
character_set_results を utf8mb4 ⇛ utf8
■12/7更新
①nkfコマンドで文字コードを変更
$ nkf -w /usr/local/var/mysql/character.csv > /usr/local/var/mysql/character_2.csv
②nkfコマンドで文字コード確認
$ nkf --guess /usr/local/var/mysql/character_2.csv
UTF-8 (LF)
②mysqlコマンドでcsv取り込み
mysql > LOAD DATA INFILE '/usr/local/var/mysql/character_2.csv' INTO TABLE characters FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '\r\n';
③エラー
ERROR 1265 (01000): Data truncated for column 'team_id' at row 1
▼テーブルの情報は以下です
--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| path | char(26) | NO | | NULL | |
| name | varchar(200) | NO | | NULL | |
| twitter_link | varchar(200) | YES | | NULL | |
| twitter_name | varchar(300) | YES | | NULL | |
| publishedFg | int(11) | NO | | NULL | |
| team_id | int(11) | NO | MUL | NULL | |
+--------------+--------------+------+-----+---------+----------------+
team-idは1〜37の値しか入っていないのですが、上記エラーがでました。
補足情報(FW/ツールのバージョンなど)
▼mysqlのバージョン
mysql Ver 8.0.12 for osx10.13 on x86_64 (Homebrew)

回答1件
あなたの回答
tips
プレビュー