Heim >Datenbank >MySQL-Tutorial >Kann die Datenvalidierung mithilfe regulärer Ausdrücke in MySQL implementiert werden?

Kann die Datenvalidierung mithilfe regulärer Ausdrücke in MySQL implementiert werden?

DDD
DDDOriginal
2024-11-17 17:29:02447Durchsuche

Can Data Validation Using Regular Expressions be Implemented in MySQL?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn