SQL [MySQL] zusätzliche Integrationsbedingungen z. B. nur bestimmte VARCHARs

T

Tersus

Gast
Guten Morgen,

gibt es die Möglichkeit, Regeln für meine MySQL-Spalten einzuführen. Ich will verhindern, dass beim Einfügen von Datensätzen versehentlich falsche Werte eingetragen werden. Z. B. sollen bei einer Spalte nur Buchstaben von a-zA-Z erlaubt sein u. ä..
 
Guten Morgen,

du kannst folgendes probieren:
1. Einstellen das die betreffende Tabellenspalte nicht null sein darf
2. einen Trigger schreiben, welcher bei Inserts auf die Tabelle auslöst und wenn der eingegebene Wert nicht passt, dann den Wert auf Null setzt.
Weil Null aber wegen 1. nicht erlaubt ist, wird das Insert Statement zurückgewiesen.

CREATE TRIGGER xxx BEFORE INSERT ON <deine_tabelle>
FOR EACH ROW BEGIN
IF NOT NEW.<spaltenname> REGEXP '^[[:xdigit:]]{32}$' THEN
SET NEW.<spaltenname> = NULL;
END IF;
END;

Achtung! Die REGEXP Bedingung musst du noch anpassen. Doku gibt es hier:
http://www.strassenprogrammierer.de/regular-expression-regex-praxis_tipp_597.html
 
Zurück
Oben