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

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

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

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

SQLite

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

1332閲覧

sqliteにcsvをインポートでテーブルが自動生成されない

wkbiz

総合スコア152

CSV

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

SQLite

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

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2021/09/14 03:57

宜しくお願い致します。

・環境
SQLite version 3.7.17
CentOS 7

SQLite公式ドキュメントでは下記のように記されています。
[ Command Line Shell For SQLite ]
( https://www.sqlite.org/cli.html#importing_csv_files )

7.5. Importing CSV files

Use the ".import" command to import CSV (comma separated value) data into an SQLite table. The ".import" command takes two arguments which are the source from which CSV data is to be read and the name of the SQLite table into which the CSV data is to be inserted. The source argument is the name of a file to be read or, if it begins with a "|" character, specifies a command which will be run to produce the input CSV data.

テーブルが無ければ、csvをimportすると自動的にテーブルを生成するとあります。
しかし実際に行ってみるとインポートできずに下記エラーになります。
Error: no such table: table-name

この件について何かご存じの方おられましたらご教授いただけると幸いです。
宜しくお願い致します。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/09/14 04:57

いま確認できないので推測なんですが、テーブル名にハイフン使えなかったりしませんか?`tabel-name` で試したのでしたら `table_name` に変えてみてはどうでしょう?
dodox86

2021/09/14 06:18

そのコマンドを投入したときのsqlite CLIツール上のコマンドライン、操作とCSVファイルの先頭行数行とかを実例として質問文中に追加すると、適切な回答をいただだけるかもしれません。
wkbiz

2021/09/14 07:51

コメントありがとうございます。 ycv57u6yさん  例示したハイフン有のテーブル名は、私の例えが悪かっただけです。申し訳ありません。  実際はハイフン無しのテーブル名です。 dodox86さん  import自体は一般的なもので、コマンドそのものを例示する必要は無いと思っています。  逆に例示が必要であればその方はSQLiteのことを知らない方だと思います。  知らない方へのレクチャーであれば全部書き示す必要がありますが、有識者の方に  尋ねているのでそこの説明は不要だと思っています。
dodox86

2021/09/14 08:04

> 逆に例示が必要であればその方はSQLiteのことを知らない方だと思います。 いえ、そういうことではなくて、以下のような事態を避ける為です。 > 例示したハイフン有のテーブル名は、私の例えが悪かっただけです。
guest

回答2

0

ベストアンサー

古い SQLite をビルドして試してみたところ、sqlite 3.7.17 では import 先のテーブルがないとエラーになりますが、sqlite 3.8.0 ではテーブルがなければ作られました。

Release History には記述がありませんが、ソースの変更 を確認したところ、3.8.0 で CREATE TABLE する修正が入ってますね。

投稿2021/09/15 08:11

編集2021/09/15 08:19
hoshi-takanori

総合スコア7895

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

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

0

.mode csv .import ./test.csv hoge

のように,あらかじめmodeを切り替える必要があるのでは?
その後の表示の時には.mode listのように元に戻すといいようです。

投稿2021/09/14 08:18

ujimushi_sradjp

総合スコア2103

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

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

wkbiz

2021/09/14 09:55

ご回答ありがとうございます。 .mode csv を行った上で.importを行っています。 入れ込むためのテーブル未作成の状態で.importしていますが、公式ドキュメントではそれが出来ると書かれいているので何故できないのだろう、というところで詰っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問