Forum Webscript.Ru

Общие => Базы данных => Тема начата: Crazy Man от 27 Апреля 2002, 16:56:56

Название: MYSQL
Отправлено: Crazy Man от 27 Апреля 2002, 16:56:56
Можно ли написать такой тригерр (или что-нибудь другое), чтобы автоматически смещались номера ID, при удаление пользователя.
Название: MYSQL
Отправлено: AliMamed от 27 Апреля 2002, 17:21:10
для этого есть свойство auto_increment
Название: MYSQL
Отправлено: Crazy Man от 27 Апреля 2002, 17:32:42
Спасибо что ответили.
auto_increment только добавляет ID, а не смещает номера при удаление пользователя.
Название: MYSQL
Отправлено: AlieN от 27 Апреля 2002, 18:10:18
Crazy Man
Ну грубо говоря ты удалешь пользователя номер 75
делаешь вот что:

update table set id=id-1 where id>75


PS: а какой смысл чтобы все номера шли по порядку?
Название: MYSQL
Отправлено: Crazy Man от 27 Апреля 2002, 18:30:24
Большое спасибо.
А нужно это для уникальности ID.
Название: MYSQL
Отправлено: YA от 28 Апреля 2002, 13:27:16
Цитировать
auto_increment только добавляет ID, а не смещает номера при удаление пользователя.

Тип таблицы какой? В MyISAM точно "смещает":
Допустим у тебя, 10 записей с id  от 1 до 10 (поле с атрибутом auto_increment), удаляешь запись с id=10, далее вставляешь запись (вместо значения id - "NULL") - получаешь запись с id=11, а не 10. Уникальность id никогда не нарушится.
Название: MYSQL
Отправлено: Crazy Man от 28 Апреля 2002, 15:10:24
Вот этот ответ мне подходит
update table set id=id-1 where id>75

Но все равно спасибо.
Название: MYSQL
Отправлено: AlieN от 30 Апреля 2002, 10:00:26
YA

Цитировать
MyISAM точно "смещает":

он будет "смещать" когда лимит ID исчерпается
Название: MYSQL
Отправлено: YA от 30 Апреля 2002, 17:30:06
:)  я под "смещением" подразумевал совершенно другое... в общем, не важно. Но думал про уникальность id...

Вот, что писал Crazy Man:
Цитировать
чтобы автоматически смещались номера ID, при удаление пользователя.

Цитировать
А нужно это для уникальности ID.

???
Если это совместить, уникальность, как раз наоборот, будет нарушена! Либо смещение id при удалении записи, либо уникальность!