IF NOT EXISTS to klauzula używana w poleceniach tworzących obiekty w MySQL. Jej zadaniem jest zabezpieczenie instrukcji przed błędem w sytuacji, gdy dany obiekt już istnieje.
W pytaniu egzaminacyjnym chodzi o utworzenie użytkownika tylko wtedy, gdy konto jeszcze nie istnieje.
Przykład z CREATE USER
CREATE USER IF NOT EXISTS 'anna'@'localhost' IDENTIFIED BY 'haslo';
Instrukcja oznacza: utwórz użytkownika anna łączącego się z localhost, ale tylko wtedy, gdy taki użytkownik jeszcze nie istnieje.
Co daje IF NOT EXISTS?
- zapobiega błędowi przy ponownym wykonaniu skryptu,
- nie usuwa istniejącego użytkownika,
- nie nadpisuje hasła istniejącego konta,
- zwiększa bezpieczeństwo skryptów administracyjnych.
Gdzie jeszcze występuje?
Klauzula IF NOT EXISTS jest stosowana także przy innych instrukcjach, np.:
CREATE DATABASE IF NOT EXISTS sklep;
CREATE TABLE IF NOT EXISTS klienci (
id INT PRIMARY KEY
);
Ważne na egzaminie
Poprawna kolejność w MySQL to:
CREATE USER IF NOT EXISTS 'uzytkownik'@'host' IDENTIFIED BY 'haslo';
Nie należy mylić tego z konstrukcjami typu CREATE OR REPLACE USER albo CREATE USER OR DROP, które nie są poprawną odpowiedzią w tym kontekście egzaminacyjnym.