예, 정규 표현식을 사용하여 MySQL에서 데이터 검사를 시행할 수 있습니다. 먼저 테이블을 생성해야 합니다. 그런 다음 테이블에 삽입하기 전에 트리거를 생성해야 합니다. 여기에서 전화번호 형식을 확인하겠습니다.
테이블 생성 쿼리는 다음과 같습니다.
mysql> 테이블 만들기 forceDataUsingRegularExpression -> ( -> yourPhoneNumber varchar(60) -> );쿼리 OK, 영향을 받는 행 0개(0.59초)
트리거를 생성하는 쿼리는 다음과 같습니다.
mysql> DELIMITER //mysql> CREATE TRIGGER force_phone_check BEFORE INSERT ON forceDataUsingRegularExpression -> FOR EACH ROW -> BEGIN -> IF (NEW.yourPhoneNumber REGEXP '^(\\+?[0-9]{1,4} -)?[0-9]{3,10}$' ) =0 THEN -> SIGNAL SQLSTATE '33455' -> SET MESSAGE_TEXT ='전화번호가 틀립니다'; -> END IF; -> END //쿼리 OK, 영향을 받는 행 0개(0.16초)mysql> DELIMITER;
이제 정규 표현식을 사용하여 MySQL에서 데이터 검사를 시행하기 위해 테이블에 레코드를 삽입할 때의 오류를 살펴보십시오.
mysql> insert into forceDataUsingRegularExpression values("+55242-64576");오류 1644(33455):귀하의 전화번호가 올바르지 않습니다.mysql> insert into forceDataUsingRegularExpression values("+76-WD1232221");오류 1644)(33 전화번호가 올바르지 않습니다.다음과 같이 올바른 데이터, 즉 올바른 전화를 삽입하는 중입니다.select 문을 사용하여 테이블의 모든 레코드를 표시합니다.
쿼리는 다음과 같습니다
mysql> 선택 *fromforceDataUsingRegularExpression;다음은 출력입니다.
+-----------------+| 전화번호 |+-----------------+| +55-1232221 |+-----------------+1행 세트(0.00초)