Eu preciso ser capaz de fazer isso via linha de comando em uma etapa:
lab-1:/etc/scripts# sqlite3 test.db
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> .mode csv ;
sqlite> .import /tmp/test.csv users
sqlite> select * from users;
John,Doe,au,0,"",1,5555,91647fs59222,audio
sqlite> .quit
Eu tentei o seguinte:
lab-1:/etc/scripts# sqlite3 test.db ".mode csv ; .import /tmp/deleteme.csv users"
e
lab-1:/etc/scripts# sqlite3 test.db ".mode csv .import /tmp/deleteme.csv users"
Não recebo erros, mas também não acabo com nenhum dado na tabela de usuários.
Qualquer dica seria apreciada.
Os metacomandos do SQLite não são finalizados por,
;
mas por uma nova linha. Portanto, você terá que fornecer os comandos de alguma outra forma para que as novas linhas sejam inseridas nos locais corretos.Aqui estão alguns exemplos, dos quais eu provavelmente usaria o primeiro (porque é legível).
Use um documento aqui:
Formate os comandos com
printf
:Use uma string here com C-escapes (em shells que a suportam):