![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 0 Dołączył: 2.10.2006 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Stworzyłem sobie tabelkę z użytkownikami i ustawiłem user_id na auto_increment ale muszę sam zadbać aby wartość była zwiększana (IMG:style_emoticons/default/sad.gif) Wiecie jak zrobić aby samo się zwiększało i co ważniejsze - jak usunę rekord z userem to aby user_id które usunąłem było następnym razem wykorzystane? kod :
Możecie mi powiedzieć jak to zrobić aby nie sprawdzać user_id i nie wpisywać go tylko aby samo zostało nadane ? przykład jak obecnie działa z usunięciem usera : mamy 10 userów o id od 1 do 10 - usuwamy usera nr 8 - czyli następnym razem muszę dodać usera o id (ilosc_userów+1) - ale to wychodzi wtedy ze nowy user ma mieć nr 10 - a ostatni ma taki id już - lub usuwamy kilku userów ze środka tablicu (np o id 0d 4 do 7) - wtedy dodając usera znowu wywala błąd (IMG:style_emoticons/default/sad.gif) Myślałem ze auto_increment samo zwiększa liczbę a tu ni - zrobiłem coś źle ? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Auto_increment nie uzupełnia luk. Jeśli więc usuniesz kolesia z bazy, to mysql nie załata dziury po nim. A czemu? Wyobraź sobie, że masz tabelę, która łączy się z inną. Usuwasz sobie ze środka jakiś rekord, baza przesuwa rekordy by dziurę załatać. W tym momencie całą zależną tabelę szlag trafia bo id-ki się nie zgadzają z powodu przesunięcia. Również je musiałbyś zmienić na pasujące.
Co do marek, to próba usunięcia rekordu który posiada jakieś powiązania z innymi tabelami powinna Ci się nie powieść. I sama baza MA takie mechanizmy przy definiowaniu kluczy obcych w tabelach. Warto poczytać co dają takie konstrukcje jak ON DELETE, ON UPDATE czy ON INSERT dla kluczy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 05:54 |