Witam! Mam mały problem ze zrozumieniem pewnej rzeczy, albo nie wiem czy dobrze to rozumiem. Otóz mamy taką sytuację, że tworzę tabelę np. Customers,
w której mam takie pola jak ID, Name, Surname, Address. I teraz chcę, aby kluczem głównym w mojej tabeli było ID. Zatem nie może pojawić się wiecej niż jeden wiersz z danym ID. Ale poza tym chcę żeby nie było więcej niż jeden wiersz z takim samym Name, Surname, Address. To w takim przypadku dodaje się jakiś indeks unikalny?
Bo wymyśliłem takie coś, żeby przy tworzeniu tablicy dać id na primary key, unique, autoincrement, a po zadeklarowaniu pol, podać coś takiegio Constraint Unique(name,surname, address). I niby działa, ale spotkałem coś takiego jak Indeks - no i wyczytałem, że służy do lepszego / szybszego pobierania danych itp...i tam można zaznaczyć kilka pół i wybrać Unique - ale nie rozumiem co się stanie w czymś takim. Z góry dziękuję za odpowiedź !
- Rejestracja:ponad 11 lat
- Ostatnio:prawie 10 lat
- Postów:78
0
0
primary key, autoincrement
na id
oraz indeks unique
na name, surname, address
.
ale nie rozumiem co się stanie w czymś takim
Wyrzuci błąd, gdy będziesz chciał dodać wpis, który nie jest unikalny na id
bądź name, surname, address
.
Tabela będzie również nieco większa w sensie fizycznego rozmiaru pliku na dysku (indeksy są zapamiętywane osobno), lecz szybsza (właśnie dlatego, że indeksy są zapamiętywane osobno).
edytowany 2x, ostatnio: Patryk27

- Rejestracja:prawie 17 lat
- Ostatnio:dzień
- Postów:2792
0
Nie wiem, jak SQLite, ale inne bazy na CONSTRAINT UNIQUE domyślnie tworzą INDEX.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
abrakadaber