sqlite:如何在现有表中添加自动增量ID?

时间:2011-01-07 04:37:42

标签: sql sqlite

我想将一个名为uid的自动增量整数字段添加到现有表assoc中,但除非它是主键,否则看起来我不能这样做。

我有字段local_idremote_id,它们是现有的主键对,我这样做是为了让INSERT OR IGNORE INTO assoc能够获得重复的主键,但是如果我有一对列作为主键,我似乎无法将它们用作更新(see other SO question)。

有人可以建议如何重组表(并使用ALTER TABLE实现重组),以便我可以获得我需要的行为:

  • 单个自动增量密钥,因此我可以将其用于UPDATE s
  • 一对字段local_idremote_id,以便对(local_id, remote_id)在表格中保持唯一

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以删除现有列上的主键,创建新的主键整数自动增量列,然后在其他两列上创建UNIQUE索引。

答案 1 :(得分:0)

啊哈,我不需要 - 有一个内置的rowid列。