質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

1回答

2273閲覧

SQLiteでカラムを選択してcsvを入力したい

Kampachi_Percy

総合スコア21

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2021/03/24 16:20

編集2021/03/24 16:22

実現したいこと

SQLiteでカラムを選択してcsvを入力したいと考えています。

questionsテーブルには以下のカラムがあります:

カラム名制約
question_idINTEGERPRIMARY KEY
genreTEXT
questionTEXT
answerTEXT
authorTEXT
created_atTEXTCURRENT_TIMESTAMP
updated_atTEXT

また, 以下のような qa.csv が手元にあります:

csv

1歴史,土佐日記の著者は?,紀貫之 2歴史,源氏物語の著者は?,紫式部 3歴史,更級日記の著者は?,菅原孝標の女

PostgreSQLなら

PostgreSQL

1\copy questions(genre, question, answer) from 'qa.csv' with csv

のようにカラムを選択してimportできますが, 同様の機能はSQLiteにもあるのでしょうか?
詳しい方助言お願いします。

試したこと

SQLiteで対話的にやってみましたが

SQLite

1sqlite> .mode csv 2sqlite> .import ./questions.csv questions(genre, question, answer) 3Usage: .import FILE TABLE

こんな感じで書式が合ってないと言われました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

SQLite で import する際にカラムを指定することはできないようです。
参考: 7.5. Importing CSV files (Command Line Shell For SQLite)

代わりに、一時的なテーブルを作ってそこに読み込んで目的のテーブルにコピーすれば良いのでは。

sql

1create table questions ( 2 question_id INTEGER PRIMARY KEY autoincrement, 3 genre TEXT, 4 question TEXT, 5 answer TEXT, 6 author TEXT, 7 created_at TEXT default CURRENT_TIMESTAMP, 8 updated_at TEXT 9);
sqlite> create table tmp (genre, question, answer); sqlite> .mode csv sqlite> .import qa.csv tmp sqlite> select * from tmp; "歴史","土佐日記の著者は?","紀貫之" "歴史","源氏物語の著者は?","紫式部" "歴史","更級日記の著者は?","菅原孝標の女" sqlite> insert into questions (genre, question, answer) select * from tmp; sqlite> select * from questions; 1,"歴史","土佐日記の著者は?","紀貫之",,"2021-03-24 17:55:00", 2,"歴史","源氏物語の著者は?","紫式部",,"2021-03-24 17:55:00", 3,"歴史","更級日記の著者は?","菅原孝標の女",,"2021-03-24 17:55:00", sqlite> drop table tmp;

投稿2021/03/24 18:02

hoshi-takanori

総合スコア7895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問