Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

정규 표현식을 사용하여 MySQL에서 데이터 검사를 시행할 수 있습니까?

<시간/>

예, 정규 표현식을 사용하여 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초)