Forum Webscript.Ru
Общие => Базы данных => Тема начата: 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 и как в него войти?
-
DELETE FROM `table`
-
Metaller
Жестоко :)
А ведь человек может послушать и на рабочем сервере без бекапов такое сделать...
-
Metaller
Ты не мелкое злобное существо. А вдруг ламеры так и сделаю DELETE FROM `table`
Я считаю что человек попросил помощи надо ему помочь, но не прикалываясь, давать заведомо ложную информацию.
Иди в раздел Юмор там и прекалывайся.
-
D13@
ты мне своей способностью к обучению свой аватар ужжжасно напоминаешь.
DJ Fat
не тупи, то что ты хочешь сделать - абсолютно бессмысленно, и на форуме несколько раз уже объясняли, почему. Ищи по архивам.
FreeSpace
если сделает, то так ему и надо. Прежде чем задавать вопросы, надо своей головой немного подумать.
-
DELETE FROM `table`
не давай неправильных советов :-) Это будет работать только в 3.23.хх версиях, а вот выше - уже нет.
-
думаю, что оптимизация ака "починить таблицу" поможет
но DJ Fat не обольщайся, будет "0" только в том случае, если в таблице нет записей.
-
fidget
хм. не знал. Спасибо, учту ;)
Тогда можно - "Дамп - Дроп - Дамп". Но вообще -
Xander прав.
-
Эх... всё-то ты знаешь... А я все никак документацию целиком не прочитаю :)
-
[OFF]
А я все никак документацию целиком не прочитаю
ой, не напоминай .. смотреть на нее уже не могу ;(
:)
[/OFF]
-
Народ!!! Я додумался сам! Всё гораздо проще оказалось: я в phpmyadmin\'е выбрал базу, выбрал таблицу, в которой надо обнулить auto_increment, и нажал "Очистить" :) Вот и все дела. А записей у меня действительно нету. Спасибо всем :)
-
ну а я что сказал, собсно? ;-)))
-
Какой смысл изменять значение автоинкремента, он создан для того чтобы делать уникальность.
-
AlieN
для того, чтобы индексация началась с единицы
-
А как установить значение Auto_increment? У меня сейчас 49
-
> А как установить значение Auto_increment?
куда установить?
-
А как установить значение Auto_Inrement? Мне нужно, чтобы он был не 48, а 46.
Существует ли какая-нибудь команда типа SET?
-
а данные в таблице есть со значением автоинкремента 47,48?
если да - то никак.
если нет, то читай про ALTER TABLE
-
fidget
Данных в таблице нету. А что такое ALTER TABLE?
-
DJ Fat:
А что такое ALTER TABLE?
млин
ща ругаться начну...
http://www.mysql.com/doc/en/ALTER_TABLE.html
совсем тяжело?
-
или здесь :)
http://www.mysql.com/doc/ru/ALTER_TABLE.html
-
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 :(
-
Не ну я фигею, дорогая редакция.
Я ща закрою эту тему...
DJ Fat
Ты совсем деревянный?
Ты полосами прокрутки пользоваться умеешь?
Буквы в детстве учил?
Вот это слабо было прочитать. прежде чем постит всяку... :
При добавлении столбца AUTO_INCREMENT значения этого столбца автоматически заполняются последовательными номерами (при добавлении записей). Первый номер последовательности можно установить путем выполнения команды SET INSERT_ID=# перед ALTER TABLE или использования табличной опции AUTO_INCREMENT = #. See section 5.5.6 Синтаксис команды SET.
-
Жирный ФЭТ сделал невероятное.:super:
ALTER TABLE pafiledb_files AUTO_INCREMENT = 49;
спасибо всем! ;)