Действительно ли возможно пересеять столбец автоприращения в базе данных SQLite, и если так, как это сделано?
т.е. эквивалент DBCC CHECKIDENT ('MyTable', RESEED, 1)
в SQL Server.
В SQLite есть таблица с именем SQLITE_SEQUENCE, которая отслеживает наибольшее значение RowId
, которое имеет таблица. Вы можете выполнять вставку, обновление и удаление в этой таблице. Например, чтобы имитировать функциональность, аналогичную оператору TRUNCATE TABLE SQL Server, вы можете сделать что-то вроде:
DELETE FROM MyTableName;
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName';
В приведенном выше примере все данные из MyTableName удаляются, а идентификатор строки с автоматическим увеличением сбрасывается путем удаления значения из таблицы SQLITE_SEQUENCE. Дополнительную информацию см. В документации для AUTOINCREMENT .