Uczę się jak używać sqlite3 z pythonem. Przykład w książce tekstowej, którą obserwuję, to baza danych, w której każdy rekord kraju ma region, kraj i populację.Co robi słowo kluczowe CONSTRAINT w tym instrukcji CREATE TABLE
Książka mówi:
Poniższy urywek używa słowa kluczowego CONSTRAINT określić że żadne dwa wpisy w tabeli są utworzony zostanie kiedykolwiek mają te same wartości dla regionu i kraju:
>>> cur.execute('''
CREATE TABLE PopByCountry(
Region TEXT NOT NULL,
Country TEXT NOT NULL,
Population INTEGER NOT NULL,
CONSTRAINT Country_Key PRIMARY KEY (Region, Country))
''')
Proszę wyjaśnić, co tutaj robi CONSTRAINT Country_Key
. Jeśli go usuniemy, sama instrukcja PRIMARY KEY wydaje się zapewniać, że każdy kraj ma unikalną nazwę dla tego regionu.
Zgadza się. Rzeczywiste ograniczenie PRIMARY KEY nie różni się ze słowem kluczowym CONSTRAINT lub bez niego. Słowo kluczowe po prostu pozwala nam zidentyfikować ograniczenie. –
Dzięki za naprawdę szybką odpowiedź. Zaznaczę to jako odpowiedź, jeśli mógłbyś dać mi prosty przykład polecenia edycji/usunięcia ograniczenia później. –
Okazuje się, że wcześniej źle pisałem. Możesz tylko rzucić ograniczenia, a nie edytować je bezpośrednio. Możesz jednak upuścić jeden i dodać kolejny (w efekcie dokonanie edycji) –