在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之外的所有列都为空值。