Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Primary key na dwóch kolumnach i problem z delete
konrados
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Witam,

Miałem dzisiaj nieprzyjemną przygodę. Otóż modyfikowałem pewien skrypt, w którym musiałem usuwać pewne rekordy w tabelce.

Tabelka 'users_privs' wygląda tak:
(int) user_id
(int) priv_id

Nie ma tam pola ID(autoincrement, primary), za to jest klucz primary postawiony na te dwie kolumy.

W tabelce są np. dane takie:
user_id:1
priv_id:7

I teraz, zapytanie:
  1. delete from user_privs where user_id=1 and priv_id=7


Czasem działa, czasem nie.

Spędziłem z kumplem kupę czasu na to, nic nie działało, mimo, że testowaliśmy na różnych wersjach mysql.

W końcu zrobiliśmy coś, co teoretycznie nie powinno pomóc, a jednak pomogło. Zlikwidowaliśmy primary key na te dwie kolumny (user_id i priv_id), założyliśmy nowe pole ID (autoincrement, primary key) i wszystko zaczęło działać.


Testowaliśmy to na różnych wersjach mysql server, efekt ten sam.

Czy może mi ktoś wytłumaczyć o co tu chodzi?

Edit:


Widzę, że nikt się nie kwapi do odpowiedzi:)

To może inaczej: Czy ktoś z was miał podobną strukturę tabeli i miał/nie miał podobnych problemów? Czy w ogóle zdarza wam się robić tabelkę, gdzie nie ma id(primary key, autoincrement) a w zamian jest tabelka gdzie primary key jest tworzone na dwa pola?
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: 24.08.2025 - 01:30