Как сбросить счётчик AUTOINCREMENT в таблице в 1 после удаления всех записей?
Был такой вопрос, в результате которого получилось использовать AUTOINCREMENT . После чего, через запрос:
DELETE FROM ranobes;
Удалил все запииси из таблицы. Далее, добавил новую запись, которая проиндексировалось с 6 (в удаленной таблице было 5 записей), то есть индексация сработала таким образом, как будто я и не удалял те записи. Вопрос таков, а как начать заново индексирование с 1?
Отслеживать
51.6k 200 200 золотых знаков 61 61 серебряный знак 242 242 бронзовых знака
задан 17 окт 2020 в 18:00
Cowboyserg Cowboyserg
781 6 6 серебряных знаков 21 21 бронзовый знак
ассоциация: stackoverflow.com/q/692856/2110496
17 окт 2020 в 18:01
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
После небольших эксперементов с SQLite version 3.25.2 2018-09-25 пришел к выводу, что SQLite делает проверку при обнулении счетчика в SQLITE_SEQUENCE и если на момент вставки в непустую таблицу значение ее счетчика меньше последнего значения из таблицы, то SQLite сам исправит значение счетчика на last_seq_number .
sqlite> SELECT * FROM ranobes; ranobe_id name ---------- ---------- 1 name1 2 name2 3 name3 4 name4 sqlite> SELECT * FROM SQLITE_SEQUENCE; name seq ---------- ---------- ranobes 4
т.е. изначально в таблице 4 записи и значение счетчика во внутренней таблице SQLITE_SEQUENCE — 4.
Теперь сбросим значение счетчика в ноль:
sqlite> UPDATE SQLITE_SEQUENCE SET seq = 0 WHERE name = 'ranobes'; sqlite> SELECT * FROM SQLITE_SEQUENCE; name seq ---------- ---------- ranobes 0
и попробуем вставить новую запись не опустошив таблицу:
sqlite> INSERT INTO ranobes (name) VALUES("name5"); sqlite> SELECT * FROM SQLITE_SEQUENCE; name seq ---------- ---------- ranobes 5 sqlite> SELECT * FROM ranobes; ranobe_id name ---------- ---------- 1 name1 2 name2 3 name3 4 name4 5 name5
SQLite сам исправил значение счетчика!
Т.е. для того чтобы сбросить значение счетчика нужно также опустошить таблицу:
sqlite> DELETE FROM ranobes; sqlite> UPDATE SQLITE_SEQUENCE SET seq = 0 WHERE name = 'ranobes'; sqlite> INSERT INTO ranobes (name) VALUES("name1"); sqlite> SELECT * FROM SQLITE_SEQUENCE; name seq ---------- ---------- ranobes 1 sqlite> SELECT * FROM ranobes; ranobe_id name ---------- ---------- 1 name1
Как обнулить счетчик?
Знаю, что данный вопрос много раз затрагивали, но все предложенные решения просто не работают.
Задача такова: при удалении строки из таблицы, счетчик возвращает прежнее значение.
SqlCommand command = new SqlCommand("ALTER TABLE Employers AUTO_INCREMENT = id", sqlConnection); command.ExecuteNonQuery();
Перепробовал разные синтаксисы.
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как обнулить счетчик?
Подскажите пожалуйста, как обнулить счетчик базы данных? Удалить и создать заново не вариант.
Как обнулить счетчик или.
хотя бы выстроить его в правильной последовательности: 12 а следовало 12 13 13 .
Обнулить счетчик при удалении-добавлении
Здравствуйте! Сам новенький в Firebird. При удалении-добавлении записей, в таблице firebird.
1113 / 847 / 149
Регистрация: 25.07.2015
Сообщений: 1,888
Если речь идёт именно об обнулении после удаления всех записей (ID первой записи будет 1),
то так
DBCC CHECKIDENT (название вашей таблицы, RESEED, 0);
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
как обнулить счётчик на Delonghi Primadonna class ecam 556.55
как можно это сделать , каким програматором и куда его подключать или нужно выпаивать микросхему ?

Пожалуйста, подскажите как обнулить счетчик чернил в Canon Pixma E204?
Умоляю, как с помощью кнопок можно обнулить счетчик чернил? Цветной картридж после заправки.
Samsung SCX-4200 как можно обнулить счетчик страниц (пробег) аппарата
Samsung SCX-4200 как можно обнулить счетчик страниц (пробег) аппарата? Возможно ли каким-то.
Как обнулить счётчик отсчета времени, оставшегося до завершения текущего раунда тренировки
как обнулить счётчик отсчета времени, оставшегося до завершения текущего раунда тренировки, при.
Как заставить программу вернуться к началу кода вместо закрытия и счетчик обнулить, если нужно
Народ, да было. Но время 4 утра, а я сижу и туплю. Как заставить программу вернуться к началу.
Вставка строк в таблицу, содержащую автоинкрементируемое поле стр. 4
Воспользуемся таблицей, рассмотренной на предыдущей странице, и вставим в неё 3 строки.
Если мы удалим последнюю строку, нумерация продолжится не с 3, а с 4. Т.е. последнее значение счётчика сохраняется и используется при последующем добавлении строк:
Возникает вопрос: «А можно ли сделать так, чтобы нумерация продолжилась с последнего имеющегося значения?» Оставляя в стороне вопрос о том, зачем это нужно, ответим — можно. Но устанавливать это значение счётчика нужно вручную. Итак,
Записная книжка программиста-новичка, C#, SQL, PHP и все-все-все
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Главная→Transact SQL / MS SQL→ Как сбросить значение столбца identity на 0 в Transact Sql
Рубрики
Свежие записи
- Вырезаем числовую часть из начала строки в transact-sql
- Пул соединений с базой данных в ADO.NET / OleDb — как избежать проблем с утечкой соединений в ASP.NET (перевод)
- ASP .Net MVC, JQuery и AJAX — отсылаем данные на сервер
- Разделитель тысяч и дробной части для decimal
- Создаем расширенный Control в WinForms наследуясь от существующего
- Вставка строк и изменение границ ячеек в Excel Interop из C#
- Как прочитать данные из удаленного DataRow в DataTable
- Проблемы с кодировкой при копировании русского текста из MS SQL Studio в Outlook/Word/Office
- Как проверить, существует ли таблица в MS SQL Server перед удалением/созданием
- Очень просто.
- Получаем выбранные строки DataGridView, в котором выбраны только ячейки
- Ошибка в коде привела к убыткам в 476 миллионов долларов и банкротству компании
- Отслеживаем изменения выбранного значения в колонке ComboBox DataGridView (DataGridViewComboBoxColumn)
- Excel 2010, Windows 7, два монитора и «ошибка при направлении команды приложению»
- Удаляем default-ограничение (constraint) в Transact Sql
Свежие комментарии
- Kirill к записи Самоучитель по C# для начинающих. 01. Основы языка, переменные, логика, циклы.
- как избавиться от чувства вины к записи Как добавить строку/текст в начало файла в C# и .Net
- DannyLef к записи Полезные расширения-плагины для WordPress
- как избавиться от чувства вины к записи Как добавить строку/текст в начало файла в C# и .Net
- gweg2ehgwEHERWQHQ к записи Простейшее диалоговое окно-вопрос (MessageBox) в WindowsForms
Архивы
Мета
Как сбросить значение столбца identity на 0 в Transact Sql
Опубликовано 19.01.2012 автором Ведомир
При удалении строк из таблицы счетчик столбца с identy остается на последнем значении. Удалили тысячу строк, следующая вставленная будет иметь код не 1, а 1001. Чтобы при удалении данных сбросить значение identity используем следующий код:
DELETE FROM SOME_TABLE DBCC CHECKIDENT('SOME_TABLE', RESEED, 0)