Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uniqalna kombinacja
Forum PHP.pl > Forum > Bazy danych > MySQL
Major
Cytat
kol1 | kol2
1    | 2
4    | 5
1    | 2


Mam taka tabele, i chciałbym sie dowiedzieć czy w mysqlu da sie zrobić uniqalne powiazania? Tzn, jeśli w tym samym wierszu kolumny maja dane 1 i 2, to identyczne dane nie moge sie powtorzyc w innym wierszu
sobstel
klucz UNIQUE
Major
UNIQUE Tyczy sie kolumny a nie powiazan, przynajmniej z tego co zauwazylem.
Czyli dam ten klucz na dwie kolumny
To nie bedzie mozliwa taka sytuacja
1 | 2
1 | 3
A tak MUSI być, NIE może zaistnieć taka
1 | 2
1 | 3
1 | 2
Gdzie jeden wiersz ma identyczne dane co inny.
nospor
Jakbyś z tych dwóch kolumn zrobił klucz główny to by ci zadziałało
sobstel
Cytat(Major @ 2005-07-08 10:33:14)
UNIQUE Tyczy sie kolumny a nie powiazan, przynajmniej z tego co zauwazylem.
Czyli dam ten klucz na dwie kolumny
To nie bedzie mozliwa taka sytuacja
1 | 2
1 | 3
A tak MUSI być, NIE może zaistnieć taka
1 | 2
1 | 3
1 | 2
Gdzie jeden wiersz ma identyczne dane co inny.

a sprawdzales to w ogole czy zgadujesz? klucz UNIQUE zalozony na 2 kolumny powoduje ze dana kombinacja wartosci w tych kolumnach nie moze sie powtorzyc, natomiast moga byc te same wartosci w poszczegolnych kolumnach o co wlasnie ci chodzi.
Major
No ok, ale jest jeśli potem znowu dodam wiersze i będzie znowu identyczna kombinacja to klapa bo zapytanie zwróci błąd i niczego nie doda :?
brachu
no to moment co Ty chcesz zrobic.... przeciez chciales zeby nie dodalo!!! to o co chodzi?questionmark.gif
Major
Ma nie dodawać jeśli wartości będą identyczne, ale jak już będą ma iść dalej a nie blokować zapytania :]
mhs
to co zwroci zapytanie w wyniki jego wykoania mozesz sprawdzic w php i odpowiednio dokonac obslugi
sobstel
najlepiej chyba zrobic tak jak mowi @mhs, mozna jeszcze skorzystac z ON DUPLICATE KEY UPDATE (więcej : http://dev.mysql.com/doc/mysql/en/insert.html), ale nie jest to najlepszy sposób, bo w przypadku ponownego błędu powtórzenia unikalnego klucza wteyd już wywali błąd.
SongoQ
@Major troche dziwi mnie Twoje myslenie. Jesli w bazie sie cos nie da to bazka zwraca Ci blad i to jest Twoja i wylacznie sprawa jak sobie to obsluzysz.
Major
Thx za pomoca, udało mi sie to roziwązać.
php nie wchodzilo w gre bo trwalo by to dluzej.
Wystarczyły 2 Uniqi i Replace smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.