Programmer ASP.NET MVC C#

Бывает ситуация, когда нужно очистить таблицу и сделать сброс в первичное значение главного ключа, который установлен, как автоинкрементный индекс (Суррогатный ключ / Identity Column / счётчик autoincrement).
Для этого я использую SQL команду:
DBCC CHECKIDENT ( [TableName], RESEED, 0)
Комментарий:
Комментариев пока нету
Developer ASP.NET MVC C#
Как обнулить значение AUTO_INCREMENT?
Есть древовидное меню, которое хранится в БД. Его необходимо обновлять полностью с xml документа. Самое простое решение — снести всю таблицу, и ввести все значения из xml. Только вот хотел, что бы без удаления и создания новой таблицы
27 июл 2012 в 12:22
А отказаться от AUTO_INCREMENT и самому генерировать id, не вариант?
27 июл 2012 в 12:25
Может это и не логично. Спорить не буду)))
27 июл 2012 в 12:25
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
Помог обычный mysql
mysql_connect('localhost', 'root', '1234'); mysql_select_db('al_categories'); $query = 'ALTER TABLE al_categories AUTO_INCREMENT=4'; mysql_query($query); mysql_close();
Отслеживать
ответ дан 27 июл 2012 в 12:53
Demyan112rv Demyan112rv
1,440 1 1 золотой знак 11 11 серебряных знаков 30 30 бронзовых знаков
А вообще, как-то так не пойдёт?
DB::query(null, 'ALTER TABLE AUTO_INCREMENT=0');
Отслеживать
ответ дан 27 июл 2012 в 12:23
1,245 7 7 серебряных знаков 9 9 бронзовых знаков
без результата (
27 июл 2012 в 12:34
У меня ни один из этих способов не работает. Даже Truncate не обнуляет счетчик.
Заходим непосредственно в phpMyAdmin, заходим в таблицу. Там в меню заходим в операции и там во втором столбце(Table options(место, где меняет название таблицы, кодировку и тд.)) Auto_increment меняем на 1 в ручную.
И все шикарно наботает.
Версия phpMyAdmin 4.6.3.
Отслеживать
ответ дан 17 янв 2017 в 7:39
179 9 9 бронзовых знаков
Если у вас есть данные в таблице, то вы не можете сбросить AUTO_INCREMENT. Потому что могут быть коллизии, полностью одинаковые строки. Вы можете удалить столбец с AI, а потом создать заново. Если же таблица пуста, и первый элемент идет не с единицы, а с другого, то самый просто способ это использовать Workbench
Как обнулить счетчик авто-инкремента в postgresql?
Добрый день! Пробую загрузить данные, но не получается их загрузить с первого раза. Записывается только первая строчка и выходит ошибка. Чтобы загрузить данные повторно я очищаю таблицу и пробую записать повторно, но теперь id уже начинается не с 1, а с 2. Подскажите пожалуйста как-нибудь можно обнулить этот счетчик, чтобы он всегда начинался с 1?
- Вопрос задан более года назад
- 3190 просмотров
Комментировать
Решения вопроса 1

Fullstack programmer, DBA, медленно, дорого
В отличии от MySQL где TRUNCATE TABLE автоматически сбрасывает авто инкремент, в PostgreSQL нужно добавить ключ RESTART IDENTITY
TRUNCATE TABLE tbl RESTART IDENTITY;
Ответ написан более года назад
Комментировать
Нравится 5 Комментировать
Как сбросить автоинкремент sql
Если у нас есть таблица courses и нужно сбросить счётчик автоинкремента, то нужно использовать ALTER SEQUENCE :
-- Синтаксис: -- ALTER SEQUENCE yourTableName_yourColumnName_seq RESTART WITH ALTER SEQUENCE courses_id_seq RESTART WITH 1
После WITH мы пишем число с которого хотим продолжить нашу последовательность.