URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 3627
[ Назад ]

Исходное сообщение
"Помогите чайнику! Занес записи в Mysql, потом удалил пару строк"

Отправлено 111 , 07-Окт-05 14:17 
Помогите чайнику! Занес записи в Mysql, потом удалил все строки, дальше начал заносить данные. В качестве ключевого поля у меня номера по порядку, поле удаления строк, в новых строках порядковый номер начинался не с единицы, а как бы продолжал номерацию после удаленных. Что мне сделать?

Содержание

Сообщения в этом обсуждении
"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено MeLLowD , 07-Окт-05 14:54 
Ты должен понять, что ключевое поле, которое ты выствил в auto_increment, не является порядковым номером записи в таблице. Счетчик инкрементирования можно сбросить, но говорить о порядке записей можно только при выборке.
Тут http://phpfaq.ru/mysql все очень хорошо описано, как раз для новичков.

"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено Niam , 07-Окт-05 19:31 
>Помогите чайнику! Занес записи в Mysql, потом удалил все строки, дальше начал
>заносить данные. В качестве ключевого поля у меня номера по порядку,
>поле удаления строк, в новых строках порядковый номер начинался не с
>единицы, а как бы продолжал номерацию после удаленных. Что мне сделать?
>


flush `table`


"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено gr , 08-Окт-05 01:47 
>>Помогите чайнику! Занес записи в Mysql, потом удалил все строки, дальше начал
>>заносить данные. В качестве ключевого поля у меня номера по порядку,
>>поле удаления строк, в новых строках порядковый номер начинался не с
>>единицы, а как бы продолжал номерацию после удаленных. Что мне сделать?
>>
>
>
>flush `table`

truncate table


"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено somebody , 09-Окт-05 02:49 
>Помогите чайнику! Занес записи в Mysql, потом удалил все строки, дальше начал
>заносить данные. В качестве ключевого поля у меня номера по порядку,
>поле удаления строк, в новых строках порядковый номер начинался не с
>единицы, а как бы продолжал номерацию после удаленных. Что мне сделать?

alter table TableName auto_increment=1;

до того, как начал заносить новые данные.


"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено 111 , 10-Окт-05 13:00 
>>Помогите чайнику! Занес записи в Mysql, потом удалил все строки, дальше начал
>>заносить данные. В качестве ключевого поля у меня номера по порядку,
>>поле удаления строк, в новых строках порядковый номер начинался не с
>>единицы, а как бы продолжал номерацию после удаленных. Что мне сделать?
>
>alter table TableName auto_increment=1;
>
>до того, как начал заносить новые данные.
Спасибо помогло

"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено OlegLV , 12-Окт-05 18:22 
а если была база в ней удалили некоторые поля и появились пропуски номеров - каким образом можно сделать чтобы Mysql пересчитал все номера и сдела их по порядку?

>Помогите чайнику! Занес записи в Mysql, потом удалил все строки, дальше начал
>заносить данные. В качестве ключевого поля у меня номера по порядку,
>поле удаления строк, в новых строках порядковый номер начинался не с
>единицы, а как бы продолжал номерацию после удаленных. Что мне сделать?
>



"Помогите чайнику! Занес записи в Mysql, потом удалил пару ст..."
Отправлено somebody , 13-Окт-05 09:27 
>а если была база в ней удалили некоторые поля и появились пропуски
>номеров - каким образом можно сделать чтобы Mysql пересчитал все номера
>и сдела их по порядку?

Удалить столбец с автоинкрементом:

alter table TableName drop column ColumnName;

И добавить его вновь, инкременты пересчитаются:

alter table TableName add ColumnName int unsigned not null auto_increment, add index(ColumnName);

Имхо, по-другому - ни как...