Как пересеять столбец автоприращения в базе данных SQLite?

Действительно ли возможно пересеять столбец автоприращения в базе данных SQLite, и если так, как это сделано?

т.е. эквивалент DBCC CHECKIDENT ('MyTable', RESEED, 1) в SQL Server.

12
задан Mun 26 June 2010 в 05:44
поделиться

1 ответ

В SQLite есть таблица с именем SQLITE_SEQUENCE, которая отслеживает наибольшее значение RowId , которое имеет таблица. Вы можете выполнять вставку, обновление и удаление в этой таблице. Например, чтобы имитировать функциональность, аналогичную оператору TRUNCATE TABLE SQL Server, вы можете сделать что-то вроде:

DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';

В приведенном выше примере все данные из MyTableName удаляются, а идентификатор строки с автоматическим увеличением сбрасывается путем удаления значения из таблицы SQLITE_SEQUENCE. Дополнительную информацию см. В документации для AUTOINCREMENT .

22
ответ дан 2 December 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: