sqlite: как добавить счетчик к существующей таблице

Вопрос:

Это конкретный вопрос sqlite. У меня есть таблица x0 и вы хотите добавить счетчик:

ALTER TABLE x0 ADD counter INTEGER;
UPDATE x0 SET counter = ?

С? что-то вроде: @counter: = @counter +1.

Есть идеи?

Изменить 1:
Я нашел простое решение, но не очень гибкое:

UPDATE x0 SET counter = ROWID;

Но это не очень гибко. Например, если я хочу рассчитывать внутри групп, как в этом примере, с MySQL: count внутри групп.

Лучший ответ:

В большинстве таблиц уже есть уникальный идентификатор в форме rowid, поэтому вы можете просто заменить его ? с rowid.

Если вы хотите иметь последовательные значения или перезапускать подсчет в некоторой группе, вам нужно вручную подсчитать, сколько других строк перед каждой строкой:

UPDATE x0
SET counter = (SELECT COUNT(*)
               FROM x0 AS x02
               WHERE x02.rowid <= x0.rowid
               -- AND x02.group_value = x0.group_value
              );

Оцените статью
TechArks.Ru
Добавить комментарий