Автор Тема: MYSQL  (Прочитано 3764 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Crazy Man

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« : 27 Апреля 2002, 16:56:56 »
Можно ли написать такой тригерр (или что-нибудь другое), чтобы автоматически смещались номера ID, при удаление пользователя.

Оффлайн AliMamed

  • \\o/ ali akbar \\o/
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2409
  • +2/-0
  • 2
    • Просмотр профиля
    • http://alimamed.pp.ru
MYSQL
« Ответ #1 : 27 Апреля 2002, 17:21:10 »
для этого есть свойство auto_increment
ну, будем исповедоваться?

Оффлайн Crazy Man

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #2 : 27 Апреля 2002, 17:32:42 »
Спасибо что ответили.
auto_increment только добавляет ID, а не смещает номера при удаление пользователя.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
MYSQL
« Ответ #3 : 27 Апреля 2002, 18:10:18 »
Crazy Man
Ну грубо говоря ты удалешь пользователя номер 75
делаешь вот что:

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


PS: а какой смысл чтобы все номера шли по порядку?
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Crazy Man

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #4 : 27 Апреля 2002, 18:30:24 »
Большое спасибо.
А нужно это для уникальности ID.

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #5 : 28 Апреля 2002, 13:27:16 »
Цитировать
auto_increment только добавляет ID, а не смещает номера при удаление пользователя.

Тип таблицы какой? В MyISAM точно "смещает":
Допустим у тебя, 10 записей с id  от 1 до 10 (поле с атрибутом auto_increment), удаляешь запись с id=10, далее вставляешь запись (вместо значения id - "NULL") - получаешь запись с id=11, а не 10. Уникальность id никогда не нарушится.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн Crazy Man

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #6 : 28 Апреля 2002, 15:10:24 »
Вот этот ответ мне подходит
update table set id=id-1 where id>75

Но все равно спасибо.

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
MYSQL
« Ответ #7 : 30 Апреля 2002, 10:00:26 »
YA

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

он будет "смещать" когда лимит ID исчерпается
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
MYSQL
« Ответ #8 : 30 Апреля 2002, 17:30:06 »
:)  я под "смещением" подразумевал совершенно другое... в общем, не важно. Но думал про уникальность id...

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

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

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28