SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 20.08.2010 13:24:14

Agnat
Участник
Зарегистрирован: 15.08.2010
Сообщений: 7

DELETE и последствия

Здраствуйте. вопрос таков. есть таблица с записями. удаляется 1 запись из середины. нада чтобы записи с высшими id автоматически на еденицу уменшались, и следуюющее значение автоинкремента тоже на еденицу уменшалось. пример:

есть 10 записей (1 2 3 4 5 6 7 8 9 10) след значение автоинкремента - 11. удаляется 5-я запись (1 2 3 4 6 7 8 9 10). нада чтобы после удаления было такое (1(было 1) 2(было 2) 3(3) 4(4) 5(6) 6(7) 7(8) 8(9) 9(10)) и след значение автоинкремента 10 (было 11).

как сделать? подскажите пожалуйста

Неактивен

 

#2 20.08.2010 13:57:04

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: DELETE и последствия

Ну, например,
UPDATE tablename SET id = id - 1 WHERE id > значение

Но лучше так не делать, правда. Поломаете зависимости — будете на себе
волосы рвать.

Неактивен

 

#3 20.08.2010 15:06:53

Agnat
Участник
Зарегистрирован: 15.08.2010
Сообщений: 7

Re: DELETE и последствия

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

Неактивен

 

#4 20.08.2010 15:35:24

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: DELETE и последствия

Делать любую перенумерацию — не айс, как Вы выражаетесь.

ALTER TABLE tablename AUTO_INCREMENT = значение.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson