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”。
关于如何解决这个问题有什么建议吗?
不确定我是否理解。但让我试试。
在 SQLite 中,如果主键中的其他两列中的任何一列被定义为“NOT NULL”,那么您就不能这样做。您必须同时为主键的所有“NOT NULL”组成部分插入值。但如果它们可以为空,您可以将值插入到 table1._id 中。只是
insert into table1 (_id)
select _id from table2;
Run Code Online (Sandbox Code Playgroud)
这会将新行插入到 table1 中,并且除 _id 之外的所有列都为空值。