在SQLite中将列数据从一个表复制到另一个

问题描述:

我有一个表,我需要有一个递增的_id列。但是,由于表有3个主键,我不能使用自动增量。这是在SQLite,顺便说一句。该表已经填充了数据,因此我不能重新创建表。在SQLite中将列数据从一个表复制到另一个

有没有办法在_id列中插入1到148的值?

我们已经尝试过这样的事情:

UPDATE table1 
SET _id = (SELECT _id FROM table2) 

表2是包含1的值148但是,这只是更新所有_id值“1”临时表..

关于如何解决这个问题的任何建议?

不确定我明白。但让我试试。

  • table1有一个由三列构成的主键 。
  • 其中一列被命名为“_id”。
  • 列“_id”是一个整数,但 不是自动递增的 整数。
  • 您想要将值1至148 插入到table1._id中。

在SQLite中,如果主键中的其他两列之一被定义为“NOT NULL”,那么你不能这样做。您必须同时为主键的所有“NOT NULL”组件插入值。但是,如果它们可以为空,则可以将值插入到table1._id中。只需要

insert into table1 (_id) 
select _id from table2; 

这会将新行插入table1,除了_id之外的所有列都为空值。