sqlite3 에서 대량파일 insert 를 처리해야 할 경우 insert 문을 계속 사용할 경우 I/O가 많이 발생하여 엄청난 시간을 소비하게 된다. 이에 BULK insert를 찾다가..
먼저 sqlite3의 구분자를 먼저 찾느다.
예를들어 아래와 같이 구분자로 dbdata.txt 로 파일을 만들고
원문 : http://en.w3support.net/index.php?db=so&id=364017
먼저 sqlite3의 구분자를 먼저 찾느다.
[yhlee@yhlee ~]$ sqlite3 SQLite version 3.3.6 Enter ".help" for instructions sqlite> .show .separator echo: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" width: sqlite>내가 쓰는 시스템에서는 구분자를 "|"로 사용하기에 파일의 내용을 "|"를 구분자로 사용하는 파일로 바꾼다.
예를들어 아래와 같이 구분자로 dbdata.txt 로 파일을 만들고
44|92 35|94 43|94 195|49 ...
echo "create table mytable ( col1 int, col2 int);" | sqlite3 mydb.db echo ".import dbdata.txt mytable" | sqlite3 mydb.db를 해주면 된다.
[yhlee@yhlee ~]$ echo ".show .separator" | sqlite3 echo: off explain: off headers: off mode: list nullvalue: "" output: stdout separator: "|" width: [yhlee@yhlee ~]$ echo "create table mytable( col1 int, col2 int );" | sqlite3 mydb.db [yhlee@yhlee ~]$ echo ".import dbdata.txt mytable" | sqlite3 mydb.db [yhlee@yhlee ~]$ echo "select * from mytable;" | sqlite3 mydb.db 44|92 35|94 43|94 195|49 [yhlee@yhlee ~]$
원문 : http://en.w3support.net/index.php?db=so&id=364017