我试图在sqlite中创建一个从csv文件获取数据的表,并将自动增量主键添加到第一列.
以下是我正在尝试将数据插入的表格:
以下是我正在尝试将数据插入的表格:
DROP TABLE IF EXISTS Allegiance; CREATE TABLE Allegiance ( AllegianceID INTEGER PRIMARY KEY AUTOINCREMENT,CharacterID INTEGER,Title TEXT,FOREIGN KEY (CharacterID) REFERENCES Characters(CharacterID));
这是.csv文件中的数据
,3,King of the North,14,King of the Andals and the First Men,15,Lord of Dragonstone,26,Khaleesi,35,Lord Reaper of Pyke
这是我收到的错误:
sqlite> .mode csv sqlite> import allegiances.csv Allegiance; Error: datatype mismatch
如果我在每行之前的第一个逗号之前都有“null”,我会收到相同的错误.
当我在每行之前的第一个逗号之前添加随机数字时,我没有收到任何错误.但是,我需要使用的实际数据集可能会更大,因此,我不能简单地手动添加每个条目的唯一主键.我真的很感激一些帮助
解决方法
CSV文件中的空字段只是一个空字符串,对INTEGER PRIMARY KEY列无效.
导入到没有该列的临时表中,然后复制数据:
INSERT INTO Allegiance(CharacterID,Title) SELECT * FROM TempTable;