Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySql] trigger zmniejszający id po usunieciu
tomm
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

Ostrzeżenie: (0%)
-----


Witam
Chciałbym po usunieciu z tabeli jakiegoś rekordu zmniejszy o 1 id rekordów których wartośc jest większa niz tego usnietego czyli: usuwam rekord z id 5 to w rekordzie 6 id zmienia się na 5, w 7 na 6 ....
Próbuję to zrobic za pomoca triggera
  1. CREATE TRIGGER zmniejsz_lp
  2. AFTER DELETE ON Potencjalni
  3. FOR EACH ROW
  4. BEGIN IF id_pot > OLD.id_pot
  5. THEN SET id_pot = id_pot - 1;
  6. END IF;
  7. END;

Mysql wyrzuca 'Unknow system variable "id_pot"'. Oczywiście istnieje pole o nazwie 'id_pot' w tabeli Potencjalni.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
slimboj
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.01.2008

Ostrzeżenie: (0%)
-----


Witam,
Ostatnio pisałem skrypt zarządzający użytkownikami i spotkałem się z podobnym problemem. Tzn. bardziej mnie zastanawia, która opcja będzie lepsza/efektywniejsza:
1. Po usunięciu danego rekordu z tabeli (przykładowo jakiegoś usera) zmieniać id pozostałych rekordów, aby właśnie zachować ciągłość.
2. Usunąć rekord i zapomnieć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (następny nowy dodawany user będzie miał pierwsze wolne ID, ale nie wiem czy jest to bezpieczne).
3. Usunąć dane z rekordu zostawiając w tabeli jedynie ID.

Jak wy rozwiązujecie ten problem?
Z góry dzięki za odpowiedź.

Pozdrawiam,
Max

Ten post edytował slimboj 21.05.2009, 09:40:40
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Żadne z powyższych. Usunąć rekord i o nim zapomnieć ale następny użytkownik nie dostanie pierwszego wolnego id tylko to, które jest następne. Przykładowo: masz użytkowników o id 1, 2, 3. Usuwasz tego z 2 czyli pozostaje 1, 3. Rejestruje się nowy użytkownik i otrzymuje on id = 4, a nie 2.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 17:30