我有一个15gb的SQLite数据库,有40列。我想删除大多数列,使查询更快,数据库更可移植。我找到这个了
guidance
,但无法启动。它似乎挂了,我最终破坏了数据库,不得不重新开始。以下是我使用的脚本:
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE dly_backup(DATE INTEGER,
TICKER TEXT,
TSYMBOL TEXT,
VOL INTEGER,
RET REAL,
RETX REAL,
VWRETD REAL,
VWRETX REAL,
EWRETD REAL,
EWRETX REAL,
SPRTRN REAL
);
INSERT INTO dly_backup SELECT DATE INTEGER,
TICKER TEXT,
TSYMBOL TEXT,
VOL INTEGER,
RET REAL,
RETX REAL,
vwretd REAL,
vwretx REAL,
ewretd REAL,
ewretx REAL,
sprtrn REAL
FROM dly;
DROP TABLE dly;
CREATE TABLE dly(DATE INTEGER,
TICKER TEXT,
TSYMBOL TEXT,
VOL INTEGER,
RET REAL,
RETX REAL,
VWRETD REAL,
VWRETX REAL,
EWRETD REAL,
EWRETX REAL,
SPRTRN REAL
);
INSERT INTO dly SELECT DATE INTEGER,
TICKER TEXT,
TSYMBOL TEXT,
VOL INTEGER,
RET REAL,
RETX REAL,
VWRETD REAL,
VWRETX REAL,
EWRETD REAL,
EWRETX REAL,
SPRTRN REAL
FROM dly_backup;
DROP TABLE dly_backup;
COMMIT;
有更好的办法吗?FWIW,我有原始的.csv文件,并使用R中的RSQLite包导入它。
有没有办法只导入.csv文件中的列子集?谢谢!(SQLite新版本)