teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

解決方法を追記

2018/09/13 01:42

投稿

madoka9393
madoka9393

スコア994

title CHANGED
File without changes
body CHANGED
@@ -53,4 +53,27 @@
53
53
  Query OK, 1 row affected (0.08 sec)
54
54
  ```
55
55
 
56
- 皆様のお知恵をお借りしたく存じます…。
56
+ 皆様のお知恵をお借りしたく存じます…。
57
+
58
+ 追記
59
+ yukihisa様のアドバイスのおかげで無事、解決することができました。
60
+ 回答内容のSQL文自体では解消できなかったのですが、いただいたコメントにより解消することができたので、
61
+ ベストアンサーとさせていただきました。
62
+
63
+ 具体的な手法といたしましては、
64
+ CSVファイルの作成日、更新日、削除日の内容を`\N`に変更し、
65
+ 挿入時のSQLの`SET`以降をごっそり削った結果、エラーなく挿入することができました。
66
+ ```CSV
67
+ //変更前
68
+ 4,0004,山田太郎,ヤマダタロウ,キャッチャー,,,
69
+
70
+ //変更後
71
+ 4,0004,山田太郎,ヤマダタロウ,キャッチャー,\N,\N,\N
72
+ ```
73
+ ```MySQL
74
+ //変更前
75
+ mysql> LOAD DATA INFILE '/home/meikun.csv' INTO TABLE dokaben.member FIELDS TERMINATED BY ',' SET created_at = nullif(created_at, null), updated_at = nullif(updated_at, null), deleted_at = nullif(deleted_at, null);
76
+
77
+ //変更後
78
+ mysql> LOAD DATA INFILE '/home/meikun.csv' INTO TABLE dokaben.member FIELDS TERMINATED BY ',';
79
+ ```

1

修正依頼対応

2018/09/13 01:42

投稿

madoka9393
madoka9393

スコア994

title CHANGED
File without changes
body CHANGED
@@ -17,6 +17,22 @@
17
17
  | deleted_at | datetime | YES | | NULL | |
18
18
  +------------+------------------+------+-----+---------+----------------+
19
19
 
20
+ テーブルのCREATE文
21
+ ```MySQL
22
+ | member | CREATE TABLE `member` (
23
+ `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
24
+ `code` varchar(4) DEFAULT NULL,
25
+ `name` varchar(255) DEFAULT NULL,
26
+ `kana_name` varchar(255) DEFAULT NULL,
27
+ `position` varchar(100) DEFAULT NULL,
28
+ `created_at` datetime DEFAULT NULL,
29
+ `updated_at` datetime DEFAULT NULL,
30
+ `deleted_at` datetime DEFAULT NULL,
31
+ PRIMARY KEY (`id`),
32
+ KEY `id` (`id`,`name`,`created_at`,`updated_at`,`deleted_at`)
33
+ ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 |
34
+ ```
35
+
20
36
  このCSVを以下のコマンドでMySQLのテーブルに挿入しようとしたところ、
21
37
  タイトルにもある`Incorrect datetime value: '' for column 'created_at' at row 1`が発生してしまいました。
22
38