Eine CHECK-Constraint (CHECK Constraint) implementieren
In diesem Schritt erstellen Sie eine neue Tabelle customers_with_check
, die eine CHECK
-Constraint (CHECK Constraint) enthält, um sicherzustellen, dass alle E-Mail-Adressen das @
-Symbol enthalten.
Erstellen wir zunächst eine neue Tabelle mit der CHECK-Constraint (CHECK Constraint) direkt:
CREATE TABLE customers_with_check (
customer_id INTEGER PRIMARY KEY AUTOINCREMENT,
first_name TEXT,
last_name TEXT,
email TEXT CHECK (email LIKE '%@%')
);
Dieser Befehl erstellt eine neue Tabelle namens customers_with_check
mit einer CHECK-Constraint (CHECK Constraint) für die Spalte email
, die sicherstellt, dass diese das @
-Symbol enthält. Der LIKE
-Operator wird für die Mustererkennung verwendet, und %
ist ein Wildcard-Zeichen, das mit jeder Zeichenfolge übereinstimmt.
Kopieren wir nun die vorhandenen Kundendaten in die neue Tabelle:
INSERT INTO customers_with_check (customer_id, first_name, last_name, email)
SELECT customer_id, first_name, last_name, email FROM customers;
Versuchen Sie nun, einen neuen Kunden mit einer ungültigen E-Mail-Adresse einzufügen:
INSERT INTO customers_with_check (first_name, last_name, email) VALUES
('Charlie', 'Davis', 'invalid-email');
Sie sollten eine Fehlermeldung ähnlich dieser sehen: Error: CHECK constraint failed: email
(Fehler: CHECK-Constraint fehlgeschlagen: E-Mail). Dies deutet darauf hin, dass die CHECK
-Constraint (CHECK Constraint) das Einfügen der ungültigen E-Mail-Adresse verhindert hat.
Um zu überprüfen, ob die CHECK
-Constraint (CHECK Constraint) funktioniert, fügen Sie einen Kunden mit einer gültigen E-Mail-Adresse ein:
INSERT INTO customers_with_check (first_name, last_name, email) VALUES
('Alice', 'Brown', '[email protected]');
Dieser Befehl sollte erfolgreich ausgeführt werden, da die E-Mail-Adresse das @
-Symbol enthält.