使用从1到N的值更新SQLite表

时间:2013-10-21 08:55:49

标签: sql sqlite

我在SQLite中有一些表格,其中有一个名为Numbers的列。该表包含N个元素。我想创建某种更新查询,允许我更改Numbers的{​​{1}}'值。

我想添加一个自动增量的新列(因此它将完全按照我的意愿)。然后将我的临时列中的值复制到1-N(我不想重命名它以避免处理约束)。然后放下临时列。但是......问题是Numbers不支持SQLite RENAME COLUMN/DELETE COLUMN之类的任何内容。

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

1 个答案:

答案 0 :(得分: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. 放下临时表。