>  기사  >  데이터 베이스  >  정규식을 사용한 데이터 검증을 MySQL에서 구현할 수 있습니까?

정규식을 사용한 데이터 검증을 MySQL에서 구현할 수 있습니까?

DDD
DDD원래의
2024-11-17 17:29:02382검색

Can Data Validation Using Regular Expressions be Implemented in MySQL?

MySQL에서 정규식을 사용한 데이터 유효성 검사를 시행할 수 있나요?

데이터 유효성 검사는 데이터 무결성을 보장하는 데 중요합니다. 정규식(regex)은 제약 조건 정의에 유연성을 제공합니다. MySQL은 데이터 검증을 위해 정규식을 활용할 수 있습니까?

예, MySQL은 데이터 검증을 위한 정규식을 지원합니다. 특히 데이터 검증을 위한 CHECK 제약 조건은 지원하지 않습니다. 대신 트리거를 사용해야 합니다.

예를 들어 트리거를 사용하여 전화 열에 대한 확인 제약 조건을 생성할 수 있습니다.

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$$

이 트리거는 수신 전화 번호가 지정된 번호와 일치하는지 확인합니다. 정규식. 일치하지 않으면 오류를 알리고 사용자 정의 오류 메시지를 설정합니다.

INSERT INTO data VALUES ('+64-221221442'); -- should be OK
INSERT INTO data VALUES ('+64-22122 WRONG 1442'); -- will fail with the error: #1644 - Wroooong!!! 

그러나 데이터 검증을 MySQL에만 의존하는 것은 권장되지 않습니다. 최적의 데이터 무결성을 위해 데이터는 애플리케이션의 여러 수준에서 검증되어야 합니다.

위 내용은 정규식을 사용한 데이터 검증을 MySQL에서 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.