Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обнуление первичного ключа id
 
 автор: ASK_EL   (21.06.2007 в 09:24)   письмо автору
 
 

я делал базу и были типа тестовые записи! Вот теперь нужно начать работу с с таблицей официально! а id начинает создаваться в автомате с 50 номера! А мне нужно чтобы началось с 1
Как сбросить это????

   
 
 автор: Trianon   (21.06.2007 в 09:46)   письмо автору
 
   для: ASK_EL   (21.06.2007 в 09:24)
 

Вам это не нужно.
Можно, конечно, выполнить TRUNCATE tbl;
Но если работоспособность Ваших скриптов зависит от того, какие числа выдает автонумератор при формировании первичных ключей - значит Вы где-то ошиблись.

   
 
 автор: ASK_EL   (21.06.2007 в 09:58)   письмо автору
 
   для: Trianon   (21.06.2007 в 09:46)
 

не работосполсобность, а просто уникальность записей

и они должны начинатся по условию с 1! Это просто условие заказчика! чтобы база началась вестись с номера 1
попробую!
ну это надо только 1 раз сделать?

   
 
 автор: Trianon   (21.06.2007 в 10:04)   письмо автору
 
   для: ASK_EL   (21.06.2007 в 09:58)
 

AUTO_INCREMENT раздает первичные ключи.
Он гарантирует (при корректном применении) уникальность записей.
Ставить условия первичным ключам - это не только не дело заказчика, но даже программиста.

Изначально - при создании таблицы - нумератор уже сброшен в начало.
Так что любое осмысленное применение этой команды - гарантия того, что ключи будут повторяться.

Видимо это придется делать всякий раз, когда захочет заказчик.
И достаточно раза, чтобы ключи перестали быть уникальными.

   
 
 автор: cheops   (21.06.2007 в 10:27)   письмо автору
 
   для: ASK_EL   (21.06.2007 в 09:24)
 

Выполните оператор
TRUNCATE TABLE tbl

Это обнулит счётчик (все данные в таблице при этом уничтожаются).

   
 
 автор: Trianon   (21.06.2007 в 10:40)   письмо автору
 
   для: cheops   (21.06.2007 в 10:27)
 

Уникальные ключи - это не только те, которые сейчас существуют в таблице.
Это и все те экземпляры, что были в ней всё время жизни всей схемы БД. Или как минимум экземпляра схемы.

Давая такие советы, нужно писать немножечко больше.

   
 
 автор: cheops   (21.06.2007 в 10:42)   письмо автору
 
   для: Trianon   (21.06.2007 в 10:40)
 

>Давая такие советы, нужно писать немножечко больше.
Зачем?

   
 
 автор: Trianon   (21.06.2007 в 11:00)   письмо автору
 
   для: cheops   (21.06.2007 в 10:42)
 

Если это опять ответ в ключе "Всего не предусмотришь.Человек сам должен шишки набивать" - зачем тогда вообще отвечать на вопросы?


Отвечу. Потому что шишки с неуникальными ключами - это очень болезненные шишки.
А грабли просто так не видны. Вам, насколько мне известно, в том числе.

   
 
 автор: cheops   (21.06.2007 в 11:20)   письмо автору
 
   для: Trianon   (21.06.2007 в 11:00)
 

Я вот чего не понимаю - человек чёрным по белому написал - нужно обнулить таблицу - удалить все данные и начать счётчик с единицы - оператор TRUNCATE именно для таких случаев и предназначен. Ну не хочет заказчик, чтобы первая статья шла с 50 первичным ключём, да наздоровье - обнулили таблицу и вперёд - пускай ключи заполняются в естественном порядке.

   
 
 автор: ASK_EL   (21.06.2007 в 11:03)   письмо автору
 
   для: cheops   (21.06.2007 в 10:27)
 

данных там и не будет! вот только это применится к одной таблице или ко всем?

Тоесть у меня просто для tbl сброситься счетчик автоинкрементный! и ВСЕ? тоесть в будущем при добавлении записи, id будет также гарантированно с 1 и до бесконечно добавляться???

   
 
 автор: Trianon   (21.06.2007 в 11:08)   письмо автору
 
   для: ASK_EL   (21.06.2007 в 11:03)
 

>данных там и не будет! вот только это применится к одной таблице или ко всем?

Естественно - к той, которую указываете в запросе.
Собственно, корректный путь - получить дамп структуры, удалить в нем указания о точках отсчета AUTO_INCREMENT .
При создании схемы с дампа все таблицы поднимутся с нуля.


>
>Тоесть у меня просто для tbl сброситься счетчик автоинкрементный! и ВСЕ? тоесть в будущем при добавлении записи, id будет также гарантированно с 1 и до бесконечно добавляться???

   
 
 автор: cheops   (21.06.2007 в 11:21)   письмо автору
 
   для: ASK_EL   (21.06.2007 в 11:03)
 

>данных там и не будет! вот только это применится к одной таблице или ко всем?
Оператор TRUNCATE TABLE придётся применить к каждой таблице, где необходимо сбросить счётчик.

>Тоесть у меня просто для tbl сброситься счетчик автоинкрементный! и ВСЕ? тоесть в будущем
>при добавлении записи, id будет также гарантированно с 1 и до бесконечно добавляться???
да.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования