Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dwa niezalezne pola unique
Forum PHP.pl > Forum > Bazy danych > MySQL
KirkoR
Witam, mam następujący problem: są dwa pola które muszą być ze sobą powiązane i zarazem unikalne. Tzn. jakiś wpis w danej kolumnie może się powtórzyć pod warunkiem iż w drugiej jest unikalny. I na odwrót.
czyli mając do dyspozycji liczby 0,1 i A,B takie rekordy mogą się pojawić:
0 A
1 A
0 B
1 B

ale już np.
0 A
0 A
już nie powinno być. Jak to zrobić z poziomu MySQL'a?
SongoQ
Index na 2 pola

  1. ALTER TABLE tabela ADD UNIQUE nazwa_indeksu (pole1 , pole2)
bendi
Ja może trochę rozwinę to co napisał SongQ
  1. CREATE TABLE dupa(
  2. i int NOT NULL AUTO_INCREMENT,
  3. j varchar(30),
  4. PRIMARY KEY (j,i)
  5. ) ENGINE = MyISAM;
  6.  
  7. -- teraz jakies dane
  8. INSERT INTO dupa (j) VALUES ('cos'), ('sin'), ('tang'), ('sin'), ('cos'), ('tang'),('cos'), ('sin'), ('tang'), ('sin'), ('cos'), ('tang'), ('cos');
  9.  
  10. -- itd
  11. SELECT * FROM dupa ORDER BY i;

i voila
Kod
+---+------+
| i | j    |
+---+------+
| 1 | cos  |
| 1 | sin  |
| 1 | tang |
| 2 | sin  |
| 2 | cos  |
| 2 | tang |
| 3 | tang |
| 3 | sin  |
| 3 | cos  |
| 4 | sin  |
| 4 | cos  |
| 4 | tang |
| 5 | cos  |
+---+------+
13 rows in set (0.01 sec)
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.