2010-10-22 73 views
0

對於數據庫的新用途,所以請讓我知道是否我完全錯了。我想使用數據庫來存儲大型數據集(我使用R來分析數據,無法加載大於可用RAM的數據集),並且我在FireFox中使用SQLite-Manager來導入.csv文件。 99%的時間我使用實數,但想要避免所有的點擊手動將100列中的每一列都作爲REAL(SQLite-Manager中的默認值是TEXT)。在SQLite中重建變量的最簡單的方法

有沒有一種方法我可以快速/輕鬆地將所有列轉換爲REAL?謝謝!

回答

1

爲什麼不讓腳本被SQLite shell解釋?

運行sqlite my_db < script.txtscripts.txt內容如下:

CREATE TABLE foo(
col1 REAL, 
col2 REAL, 
[...] generate those lines with a decent text editor 
); 

.separator ; 
.import 'my/csv/file.csv' foo 
.q 

注意,SQLite的外殼的點命令使用「幫助」是可用的。導入是基本的,如果你有雙引號(刪除它們)將不起作用。只有,被解釋爲分隔符,你不能逃避它。如果需要,您可以使用多字符分隔符。

還要確保file.csv是UTF8編碼的。

+0

現在我很高興幾個月前我從textmate切換到Vim ...要完成,我可以在Vim中輕鬆創建100個條目...':。!printf'Ret(\%s)REAL \ n'{1..100}' – 2010-10-25 20:10:31

+1

否則,您可以使用[visincr.vim](http://www.vim.org/scripts/script.php?script_id=670)插件(yy99p,然後CTRL-V ,並阻止突出顯示數字列和':I' – Benoit 2010-10-26 04:39:47