sqlite: как добавить автоинкрементный идентификатор в существующую таблицу? - PullRequest
1 голос
/ 07 января 2011

Я хотел бы добавить целочисленное поле с автоинкрементом, называемое uid, к существующей таблице assoc, но это не похоже на то, что я могу это сделать, если это не первичный ключ.

У меня есть поля local_id и remote_id, которые являются существующей парой первичных ключей, и я делаю это так, чтобы я мог INSERT OR IGNORE INTO assoc, чтобы я не получил дубликаты первичных ключей, но если у меня есть пара столбцы в качестве первичного ключа, я не могу использовать их как обновление ( см. другой вопрос SO ).

Может ли кто-нибудь предложить, как реструктурировать таблицу (и реализовать эту реструктуризацию, используя ALTER TABLE), чтобы я мог получить нужное мне поведение:

  • один автоинкрементный ключ, так что я могу использовать его для UPDATE s
  • пара полей local_id и remote_id, так что пара (local_id, remote_id) остается уникальной в таблице

Ответы [ 2 ]

1 голос
/ 07 января 2011

В этом случае вы можете удалить первичный ключ в существующих столбцах, создать новый столбец целочисленного автоинкремента первичного ключа, а затем создать уникальный индекс для двух других столбцов.

0 голосов
/ 07 января 2011

Ага, мне не нужно - есть встроенная колонка rowid.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...