如何将主键添加到SQLite中现有的表中?我知道我必须生成一个新表,并从旧表中复制所有内容。但是,它总是给我一个错误,说数据类型不匹配是因为一个表有主键,而另一个表没有。我确实在不包括主键的情况下运行了相同的命令,并且运行正常。
CREATE TABLE temp_table
(
id INTEGER PRIMARY KEY,
age INTEGER,
address TEXT
)
INSERT INTO temp_table
SELECT *
FROM original_table
因为我是从CSV文件导入数据,所以我一开始就不知道如何添加主键。如果有人知道这个问题的解决方案,它也会奏效。
1条答案
按热度按时间js4nwp541#
假设原始表有两列:
age
和address
,您可以列出没有主键的新表的列名:或者,包括主键并传递
null
作为其值:或者:
在所有情况下,
id
都将由SQLite填充,因为它被定义为INTEGER PRIMARY KEY
,并且它将从1开始自动递增。如果原始表中有另一列具有唯一的整数值,则可以传递该列以填充新的
id
:将
col
更改为列的实际名称。