Kann die Datenvalidierung mithilfe regulärer Ausdrücke in MySQL erzwungen werden?
Die Validierung von Daten ist für die Gewährleistung der Datenintegrität von entscheidender Bedeutung. Reguläre Ausdrücke (Regex) bieten Flexibilität beim Definieren von Einschränkungen. Kann MySQL Regex für die Datenvalidierung nutzen?
Ja, MySQL unterstützt Regex für die Datenvalidierung. Insbesondere unterstützt es keine CHECK-Einschränkungen für die Datenvalidierung. Stattdessen sollten Trigger verwendet werden.
Sie können beispielsweise mithilfe eines Triggers eine Prüfeinschränkung für eine Telefonspalte erstellen:
CREATE TRIGGER trig_phone_check BEFORE INSERT ON data FOR EACH ROW BEGIN IF (NEW.phone REGEXP '^(\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN SIGNAL SQLSTATE '12345' SET MESSAGE_TEXT = 'Wroooong!!!'; END IF; END$$
Dieser Trigger prüft, ob die eingehende Telefonnummer mit der angegebenen übereinstimmt regulärer Ausdruck. Wenn es nicht übereinstimmt, wird ein Fehler gemeldet und eine benutzerdefinierte Fehlermeldung gesetzt.
INSERT INTO data VALUES ('+64-221221442'); -- should be OK INSERT INTO data VALUES ('+64-22122 WRONG 1442'); -- will fail with the error: #1644 - Wroooong!!!
Es wird jedoch nicht empfohlen, sich bei der Datenvalidierung ausschließlich auf MySQL zu verlassen. Für eine optimale Datenintegrität sollten Daten auf mehreren Ebenen einer Anwendung validiert werden.
Das obige ist der detaillierte Inhalt vonKann die Datenvalidierung mithilfe regulärer Ausdrücke in MySQL implementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!