SQLite3.x で
COPY footable from ‘foo.csv’ USING DELIMITERS ‘,’;
などとして csv から読み込もうとすると、
SQL error: near “COPY”: syntax error
となり実行できません。
調べてみると、3.0 以降削除された機能だそうで、公式のバグトラックによると
3.0 以降、不自由ですが COPY コマンドは削除しました。
このコマンドは SQL 非標準であり、UTF-16 での実装方法についてどうすればいいか見出せなかったためです。
とのことでした。
2.x と 3.x を両方いれて、2.x で csv からコピーしてdumpしてやることで 3.x でも CSV の利用は可能です。
$ sqlite /tmp/foocsv.tmp “COPY foo FROM ‘foo.csv’ USING DELIMITERS ‘,'”
$ sqlite /tmp/foocsv.tmp ‘.dump’ > /tmp/foocsv.sql
$ sqlite3 ./applyTo.db < /tmp/foocsv.sql
参考:
– Ticket 982: COPY command does not work in 3.0.8 as it does in 2.8.13
– SQLite が認識できるクエリ言語