Forum Webscript.Ru

Общие => Базы данных => Тема начата: DJ Fat от 02 Июня 2003, 13:54:20

Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 02 Июня 2003, 13:54:20
Народ, нужна помощь. Я поставил скрипт базы данных файлов (paFileDB 3.1, может кто знает, вещь достаточно известная), который работает на PHP+MySQL. При добавлении файла в базу ему присваивается ID. Но проблема в том, что я в течение долгого времени отлаживал этот скрипт и добавлял туда много мусора, а когда пришло время открыть раздел "Файлы" на сайте, то обнаружил, что несмотря на то, что весь мусор я удалил, все последующие файлы, которые я добавляю, имеют ID начиная с 47! Хотелось бы сбросить этот счётчик, чтобы новые файлы считались с ID=1.

Так вот... я зашёл в phpMyAdmin в таблицу pafiledb_files и обнаружил, что поле file_id имеет статус auto_increment:
(http://www.mixgalaxy.ru/images/temp/auto_increment.gif)
А внизу какая-то статистика ряда и там как раз то, что я искал, Autoindex со значением 47:
(http://www.mixgalaxy.ru/images/temp/autoindex.gif)
Как его обнулить, чтобы Autoindex был 0 или 1?

Мне сказали, что надо воспользоваться вот этой командой:
shell> myisamchk [options] tbl_name
А в опциях указать что-то типа set auto_increment ... и указать значение. Но это выполняется в каком-то shell, а просто если написать в SQL-запросе в phpMyAdmin, то он выдаёт ошибку. Возникает второй вопрос: что такое shell и как в него войти?
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Metaller от 02 Июня 2003, 17:56:24
DELETE FROM `table`
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: FreeSpace от 02 Июня 2003, 18:01:04
Metaller
Жестоко :)
А ведь человек может послушать и на рабочем сервере без бекапов такое сделать...
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: D13@ от 02 Июня 2003, 19:52:30
Metaller
Ты не мелкое злобное существо. А вдруг ламеры так и сделаю
Цитировать
DELETE FROM `table`


Я считаю что человек попросил помощи надо ему помочь, но не прикалываясь, давать заведомо ложную информацию.
Иди в раздел Юмор там и прекалывайся.
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Xander от 02 Июня 2003, 20:11:46
D13@
ты мне своей способностью к обучению свой аватар ужжжасно напоминаешь.

DJ Fat
не тупи, то что ты хочешь сделать - абсолютно бессмысленно, и на форуме несколько раз уже объясняли, почему. Ищи по архивам.

FreeSpace
если сделает, то так ему и надо. Прежде чем задавать вопросы, надо своей головой немного подумать.
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: fidget от 02 Июня 2003, 21:48:20
Цитировать

DELETE FROM `table`

не давай неправильных советов :-) Это будет работать только в 3.23.хх версиях, а вот выше - уже нет.
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Rel от 03 Июня 2003, 09:06:05
думаю, что оптимизация ака "починить таблицу" поможет

но DJ Fat не обольщайся, будет "0" только в том случае, если в таблице нет записей.
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Metaller от 03 Июня 2003, 09:35:19
fidget
хм. не знал. Спасибо, учту ;)
Тогда можно - "Дамп - Дроп - Дамп". Но вообще -
Xander прав.
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Metaller от 03 Июня 2003, 12:51:12
Эх...  всё-то ты знаешь... А я все никак документацию целиком не прочитаю :)
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: fidget от 03 Июня 2003, 12:55:11
[OFF]
Цитировать

А я все никак документацию целиком не прочитаю


ой, не напоминай .. смотреть на нее уже не могу ;(

:)

[/OFF]
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 03 Июня 2003, 22:19:00
Народ!!! Я додумался сам! Всё гораздо проще оказалось: я в phpmyadmin\'е выбрал базу, выбрал таблицу, в которой надо обнулить auto_increment, и нажал "Очистить" :) Вот и все дела. А записей у меня действительно нету. Спасибо всем :)
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Metaller от 04 Июня 2003, 10:39:12
ну а я что сказал, собсно? ;-)))
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: AlieN от 04 Июня 2003, 11:17:13
Какой смысл изменять значение автоинкремента, он создан для того чтобы делать уникальность.
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: ThE0ReTiC от 04 Июня 2003, 11:20:23
AlieN
для того, чтобы индексация началась с единицы
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 05 Июня 2003, 15:49:09
А как установить значение Auto_increment? У меня сейчас 49
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: fidget от 05 Июня 2003, 15:52:28
> А как установить значение Auto_increment?

куда установить?
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 05 Июня 2003, 15:52:42
А как установить значение Auto_Inrement? Мне нужно, чтобы он был не 48, а 46.

Существует ли какая-нибудь команда типа SET?
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: fidget от 05 Июня 2003, 15:55:50
а данные в таблице есть со значением автоинкремента 47,48?
если да - то никак.
если нет, то читай про ALTER TABLE
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 05 Июня 2003, 16:44:11
fidget
Данных в таблице нету. А что такое ALTER TABLE?
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: ThE0ReTiC от 05 Июня 2003, 16:49:02
Цитировать
DJ Fat:
А что такое ALTER TABLE?

млин
ща ругаться начну...
http://www.mysql.com/doc/en/ALTER_TABLE.html
совсем тяжело?
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: Alone от 05 Июня 2003, 17:01:46
или здесь :)
http://www.mysql.com/doc/ru/ALTER_TABLE.html
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 05 Июня 2003, 17:35:05
alter_specification:
        ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
  или   ADD [COLUMN] (create_definition, create_definition,...)
  или   ADD INDEX [index_name] (index_col_name,...)
  или   ADD PRIMARY KEY (index_col_name,...)
  или   ADD UNIQUE [index_name] (index_col_name,...)
  или   ADD FULLTEXT [index_name] (index_col_name,...)
  или   ADD [CONSTRAINT symbol] FOREIGN KEY [index_name] (index_col_name,...)
            [reference_definition]
  или   ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
  или   CHANGE [COLUMN] old_col_name create_definition
               [FIRST | AFTER column_name]
  или   MODIFY [COLUMN] create_definition [FIRST | AFTER column_name]
  или   DROP [COLUMN] col_name
  или   DROP PRIMARY KEY
  или   DROP INDEX index_name
  или   DISABLE KEYS
  или   ENABLE KEYS
  или   RENAME [TO] new_tbl_name
  или   ORDER BY col
  или   table_options
Я не вижу здесь ничего про set auto-increment value :(
Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: ThE0ReTiC от 05 Июня 2003, 17:41:00
Не ну я фигею, дорогая редакция.
Я ща закрою эту тему...
DJ Fat
Ты совсем деревянный?
Ты полосами прокрутки пользоваться умеешь?
Буквы в детстве учил?
Вот это слабо было прочитать. прежде чем постит всяку... :
Цитировать

При добавлении столбца AUTO_INCREMENT значения этого столбца автоматически заполняются последовательными номерами (при добавлении записей). Первый номер последовательности можно установить путем выполнения команды SET INSERT_ID=# перед ALTER TABLE или использования табличной опции AUTO_INCREMENT = #. See section 5.5.6 Синтаксис команды SET.

Название: Как обнулить значение индекс таблицы БД имеющий статус auto_increment?
Отправлено: DJ Fat от 05 Июня 2003, 23:41:05
Жирный ФЭТ сделал невероятное.:super:
ALTER TABLE pafiledb_files AUTO_INCREMENT = 49;
спасибо всем!  ;)