Как сбросить автоинкремент sql
Перейти к содержимому

Как сбросить автоинкремент sql

  • автор:

Programmer ASP.NET MVC C#

https://fastoder.com/app?aspnet

Бывает ситуация, когда нужно очистить таблицу и сделать сброс в первичное значение главного ключа, который установлен, как автоинкрементный индекс (Суррогатный ключ / 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

rozhnev

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 мы пишем число с которого хотим продолжить нашу последовательность.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *