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

質問編集履歴

3

補足説明

2020/11/01 16:12

投稿

yochun02
yochun02

スコア76

title CHANGED
File without changes
body CHANGED
@@ -16,6 +16,17 @@
16
16
  $ mysql -uroot -p <Database> -e "select * from users;" | sed -e 's/\t/,/g' > <ファイルパス>/hoge.csv
17
17
  ```
18
18
  とすれば、hoge.csvにはすべての値がカンマ区切りで出力されますが、このままではimport時にnameやupdateTimeフィールドがstringやdatetime型として認識されずエラーとなってしまいます。
19
+ ```
20
+ //hoge.csv
21
+ id, name, updateTime
22
+ 1, 田中 太郎, 2020-10-31 20:03:12
23
+ 2, 鈴木 次郎, 2020-11-01 00:05:45
24
+ 3, 山田 花子, 2020-10-02 01:01:30
25
+ ...
26
+ ..
27
+ .
28
+
29
+ ```
19
30
  ```SQL
20
31
  [mysql] INSERT IGNORE INTO users SELECT * FROM CSVREAD('<ファイルパス>/hoge.csv', null);
21
32
  ```

2

補足説明

2020/11/01 16:12

投稿

yochun02
yochun02

スコア76

title CHANGED
File without changes
body CHANGED
@@ -16,5 +16,8 @@
16
16
  $ mysql -uroot -p <Database> -e "select * from users;" | sed -e 's/\t/,/g' > <ファイルパス>/hoge.csv
17
17
  ```
18
18
  とすれば、hoge.csvにはすべての値がカンマ区切りで出力されますが、このままではimport時にnameやupdateTimeフィールドがstringやdatetime型として認識されずエラーとなってしまいます。
19
+ ```SQL
20
+ [mysql] INSERT IGNORE INTO users SELECT * FROM CSVREAD('<ファイルパス>/hoge.csv', null);
21
+ ```
19
22
 
20
23
  この場合、nameやupdateTimeは""で囲んでcsv上では文字列として格納しなければならないのでしょうか?またその場合特定のカラムは""で囲むようなsedの指定の仕方をしなければならないと思うのですが、どう書けばよいのでしょうか?

1

訂正

2020/11/01 16:02

投稿

yochun02
yochun02

スコア76

title CHANGED
File without changes
body CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  例えば、以下のようなテーブルがあったときに、
4
4
  ```SQL
5
- Fie
5
+ [mysql] desc users;
6
+
7
+ +--------------------+------------------------+------+-----+---------------------+----------------+
6
8
  | Field | Type | Null | Key | Default | Extra |
7
9
  +--------------------+------------------------+------+-----+---------------------+----------------+
8
10
  | id | bigint unsigned | NO | PRI | NULL | auto_increment |