![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam następujący problem. W bazie danych mam pole ID z funkcją auto_increment. Powiedzmy, ze w bazie jest 100 rekordów. Kasujemy rekord numer 1. Chcialbym aby w takim przypadku wszystkie rekordy od id = 2 do konca tebaeli przesunęły sie o ID-1, a przy kolejnym INSERT'cie, dodawane pole miało ID = 100 a nie 101. Jak sobie z tym poradzic? Pzdr -------------------- Załóż konto na dropbox.
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Nie!
Tego sie nie robi. A jak juz musisz, to po usunieciu:
lub triggerem w podobny sposob -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie! Tego sie nie robi. A mozesz cos wiecej powiedziec? Dlaczego nie? A jak juz musisz, to po usunieciu:
Ok, ale auto_increment dalej przypisze kolejnemu wprowadzanemu rekordowi ID = 101 a nie 100. Właściwie nie jest to w moim przypadku konieczne tylko wydawało mi sie, ze lepiej zrobić cos takiego gdyz mam ID rekordów idące w milionach z czego jakies 98% już nie istnieje :-) Myślałem ze dobrze byloby użyć tych 'pustych' numerów ID niż dodawać nowe... -------------------- Załóż konto na dropbox.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam
jak masz tyle id zmień je z liczb na znaki losowe ... guid lub md5/sha1 z time+rand z tego i nie przejmuj się dziurami w kolejnych numerach ... jak stringi są za długie użyj crc32 (albo z tego "losowego" ![]() przestawianie auto_increment nie jest dobrym pomysłem - nie ma kontroli nad tym który proces pierwszy odczyta nowe wartości - może dojść do kolizii ... no i jak widzę chcesz to robić dla dużej częśći tych rekordów - może się posypać ... pozdrawiam -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 0 Dołączył: 4.08.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ok, dzięki za informacje. Wydaje mi się, że jednak nie ma sie co z tym bawić. Jeśli chodzi o rozwiązanie z losowymi stringami (swoją drogą musze zapytać dziewczyne jak losuje stringi
![]() Pozdrawiam -------------------- Załóż konto na dropbox.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam
Przy algorytmach haszujących zawsze jest prawdopodobieństwo, że dwa różne stringi będą miały taki sam hasz. przy sha1 to jeszcze nie słyszałem o kolizii haszy ... ale int + auto_increment wystarczy w zupełności ... pozdrawiam -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 3 Dołączył: 3.04.2007 Ostrzeżenie: (50%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 04:00 |