IF NOT EXISTS to opcjonalna klauzula stosowana m.in. przy poleceniu CREATE TABLE. Jej zadaniem jest sprawdzenie, czy obiekt o podanej nazwie już istnieje. Jeśli tabela istnieje, polecenie nie próbuje utworzyć jej drugi raz, dzięki czemu można uniknąć błędu.
Zastosowanie przy CREATE TABLE
Przykład w MySQL:
CREATE TABLE IF NOT EXISTS ADRES (
ulica VARCHAR(70)
) CHARACTER SET utf8;
Polecenie oznacza: utwórz tabelę ADRES, ale tylko wtedy, gdy taka tabela jeszcze nie istnieje.
Co daje IF NOT EXISTS?
- zabezpiecza przed błędem tworzenia istniejącej tabeli,
- ułatwia wielokrotne uruchamianie skryptów SQL,
- jest opcjonalne — nie trzeba go używać w każdym
CREATE TABLE, - nie usuwa ani nie modyfikuje istniejącej tabeli.
Ważne na egzaminie
IF NOT EXISTS nie służy do sprawdzania poprawności danych w rekordach. Nie decyduje też o tym, czy w kolumnie można zapisać polskie znaki. Za możliwość przechowywania znaków odpowiada m.in. typ danych, zestaw znaków i kodowanie, np. utf8.
Przykład bez IF NOT EXISTS
CREATE TABLE ADRES (
ulica VARCHAR(70)
);
Jeżeli tabela ADRES już istnieje, baza może zwrócić błąd.
Przykład z IF NOT EXISTS
CREATE TABLE IF NOT EXISTS ADRES (
ulica VARCHAR(70)
);
Jeżeli tabela już istnieje, polecenie zostanie pominięte lub zakończy się bez błędu zależnie od systemu bazy danych.