Co to jest ograniczenie NOT NULL?
Ograniczenie NOT NULL zapewnia, że kolumna nie może zawierać wartości pustych, które wymagają, aby każdy wiersz w tabeli miał wartość inną niż null dla tej konkretnej kolumny.
Wymagania dotyczące samouczka:
Aby postępować zgodnie z instrukcjami podanymi w tym poście, zakładamy, że masz następujące wymagania:
- Zainstalowany serwer PostgreSQL na twoim komputerze
- Podstawowa znajomość SQL
- Uprawnienie do tworzenia obiektów tabeli bazy danych, takich jak ograniczenia, funkcje itp
Przykładowa tabela:
Zacznijmy od skonfigurowania przykładowej tabeli z kolumnami zawierającymi ograniczenie niezerowe. Weź następującą instrukcję tworzenia tabeli, która tworzy podstawową tabelę przypominającą tabelę wp_users w WordPress:
UTWÓRZ TABELĘ wp_users (
IDENTYFIKATOR SERYJNEGO KLUCZA PODSTAWOWEGO,
user_login VARCHAR(60) NIE NULL,
user_pass VARCHAR(255) NIE NULL,
user_nicename VARCHAR(50) NOT NULL,
e-mail_użytkownika VARCHAR(100) NIE NULL,
user_url VARCHAR(100),
user_registered TIMESTAMP NOT NULL DEFAULT current_timestamp,
user_activation_key VARCHAR(255),
status_użytkownika INT NIE NULL DOMYŚLNIE 0,
nazwa_wyświetlana VARCHAR(250) NIE NULL
);
Z podanego zapytania zauważysz, że większość kolumn zawiera ograniczenie NOT NULL.
Najbardziej wydajną metodą tworzenia ograniczenia NOT NULL w danej kolumnie jest tworzenie tabeli. Dzięki temu wszystkie dane dodawane do tabeli są zgodne z regułami ograniczenia.
Jeśli jednak dodasz ograniczenie do istniejącej tabeli, reguły będą miały zastosowanie tylko do danych dodanych po ograniczeniu, a nie do żadnych istniejących danych. Może to prowadzić do niespójności, zwłaszcza w przypadku dużych tabel.
Dodaj ograniczenie NOT NULL
W niektórych przypadkach możesz chcieć dodać ograniczenie NOT NULL do istniejącej tabeli. Można na przykład użyć polecenia ALTER TABLE, po którym następuje klauzula ALTER COLUMN.
Składnia jest następująca:
ALTER TABLE nazwa_tabeliALTER COLUMN nazwa_kolumny SET NOT NULL;
Zastąp nazwa_tabeli tabelą docelową, a kolumnę nazwa_kolumny kolumną docelową, do której chcesz zastosować ograniczenie.
Sprawdź ograniczenie
Możesz sprawdzić, czy ograniczenie istnieje w danej tabeli, używając polecenia „\d” w narzędziu PSQL.
\d nazwa_tabeliPrzykład:
sample_db=# \d wp_users;Wynikowy wynik jest następujący:
Usuń ograniczenie NOT NULL
Możesz także chcieć usunąć ograniczenie NOT NULL z danej kolumny. W tym celu możemy użyć klauzul ALTER TABLE i ALTER COLUMN w następujący sposób:
ALTER TABLE nazwa_tabeliALTER COLUMN nazwa_kolumny DROP NOT NULL;
Na przykład, aby usunąć ograniczenie NOT NULL z kolumny user_url tabeli wp_users, możemy uruchomić następujące zapytanie:
ALTER TABLE wp_users ALTER COLUMN user_url DROP NOT NULL;To powinno usunąć ograniczenie z tabeli.
Wniosek
W tym samouczku zbadano, w jaki sposób możemy pracować z ograniczeniem NOT NOLL w PostgreSQL. Zbadaliśmy również, jak usunąć istniejące ograniczenie NOT NULL z danej kolumny.