我有一个表格,我需要有一个递增的_id列。但是由于表有3个主键,我无法使用自动增量。这是在SQLite,顺便说一句。该表已经填充了数据,因此我不能只重新创建表。
有没有办法在_id列中插入1到148之间的值?
我们已经尝试过这样的事情:
UPDATE table1
SET _id = (SELECT _id FROM table2)
table2是一个临时表,其中包含从1到148的值。但是,这只会将所有_id值更新为“1”..
有关如何解决此问题的任何建议?
答案 0 :(得分:3)
我不明白。但是,让我试试。
在SQLite中,如果主键中的其他两列中的任何一列被定义为“NOT NULL”,那么您就无法这样做。您必须同时为主键的所有“NOT NULL”组件插入值。但如果它们可以为空,则可以将值插入table1._id。刚
insert into table1 (_id)
select _id from table2;
这将向table1中插入新行,除了_id之外的所有列都包含空值。