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

Her*_*ter 0 sql sqlite sql-update

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

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

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

UPDATE table1
SET _id = (SELECT _id FROM table2)
Run Code Online (Sandbox Code Playgroud)

table2 是一个临时表,其中包含从 1 到 148 的值。但这只是将所有 _id 值更新为“1”。

关于如何解决这个问题有什么建议吗?

Mik*_*ll' 5

不确定我是否理解。但让我试试。

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

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

insert into table1 (_id)
select _id from table2;
Run Code Online (Sandbox Code Playgroud)

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