2013-10-21 58 views
0

我有SQLite一些表中有一个名为Numbers列。此表包含N元素。我想创建某种更新查询,它允许我为1-N更改Numbers的值。更新SQLite的表值从1到N

我想添加一个新的列自动递增(所以它会为我想成为完全一致)。然后从我的临时列复制值到Numbers(我不想重命名它以避免处理约束)。然后放下临时列。但是...问题是SQLite不支持RENAME COLUMN/DELETE COLUMNALTER TABLE

如何以这种方式更新我的专栏?

回答

1
  1. 创建临时表;
  2. 与主密钥(使用ROWID如果无)和新的计算Numbers填充它;
  3. UPDATE your_table SET Numbers=(SELECT Numbers FROM temp_table WHERE id=your_table.id) WHERE id IN (SELECT id FROM temp_table)
  4. 删除临时表。
+0

没有注意到,ROWID是可以简单复制默认字段:)谢谢 – Nickon