Here's one way:
沒有主鍵創建一個新的臨時數據庫表(這樣你就可以在複製之前驗證它。)
例如
CREATE TABLE salespeopleTMP (
id INTEGER,
first_name TEXT NOT NULL,
last_name TEXT NOT NULL,
commission_rate REAL NOT NULL
);
並沒有在表中,看起來像這樣現有的數據:
sqlite> select * from salespeople;
1|Fred|Flinstone|10.0
2|Barney|Rubble|10.0
如果我現在有一個CSV數據文件名爲people.txt看起來像這樣:
3,John,Doe,5.0
4,Jane,Smith,5.0
個
導入CSV數據轉換爲臨時SQLite表
您可以將CSV數據導入到我的SQLite表與這兩個命令:
sqlite的>.separator ','
sqlite的>.import people.txt salespeopleTMP
使用INSERT INTO命令將臨時表 表中的數據導入到您的實際表中
insert into salespeople select * from salespeopleTMP
刪除臨時表salespeopleTMP
根據和錯誤的https://alvinalexander.com/android/sqlite-csv-import-data-table-primary-key
'固定如果我只是讀每行復制數據,然後將其插入到文件中的行創建的表格?'這似乎是正確的方法。 「有什麼擔心我想我會以某種方式損壞數據'然後將整個批處理包含在一個事務中。數據將全部或沒有。 –
@ModularSynth我擔心SQLOpenHelper。我不確定當我需要導入表格時,是否會遇到一些問題,因爲每個用戶都有不同的數據。我認爲這是不好的做法。 – AeriaGlorisia