Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: primary key
Forum PHP.pl > Forum > Bazy danych > MySQL
dragonsokol
witam
mam baze w ktorej id zapisuje jako PRIMARY KEY zeby bylo unikalne - i tu pojawia sie problem, otoz chce stworzyc drugi server i musi byc to samo id, ale rozni sie tylko zmienna sid 0/1. czy jest mozliwosc zrobienia primary keya ktory dziala na 2 pola? ze jezeli id 5 i sid 0 to ma blokowac
dr_bonzo
Primary key na dwa pola, jasne, nei wiem czego uzywasz do bazki ale po prostu dodajesz 2ga kolumne przy definicji klucza.
dragonsokol
nie wiem czy dobrze mnie zrozumiales, ale chodzi mi o to ze mam primary keya na id a chce dorobic zmienna sid i program laduje i zapisuje ta zmienna sid 0/1 i nie moze zapisac zapytania o tym samym id tylko sid innym

chodzi o takie cos:
INSERT INTO x (id, sid) VALUES (5, 0); << wszystko ok
INSERT INTO x (id, sid) VALUES (5, 1); << primary key blokuje, a nie powinien

@edit
przy tworzeniu bazy dodaje takie cos
PRIMARY KEY (`id`)
phpion
Cytat(dragonsokol @ 30.06.2008, 21:45:17 ) *
chodzi o takie cos:
INSERT INTO x (id, sid) VALUES (5, 0); << wszystko ok
INSERT INTO x (id, sid) VALUES (5, 1); << primary key blokuje, a nie powinien

@edit
przy tworzeniu bazy dodaje takie cos
PRIMARY KEY (`id`)

Nadałeś klucz główny (czyli i unikalny) tylko na kolumnę id. Zauważ, że id=5 już istnieje podczas wykonania drugiego zapytania. Aby osiągnąć to co chcesz (czyli aby para id + sid była kluczem głównym) zmień definicję klucza głównego na:
  1. PRIMARY KEY (`id`, `sid`)

To powinno pomóc.
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-2024 Invision Power Services, Inc.