是否可以使用正则表达式在 MySQL 中强制执行数据检查?

是的,可以使用正则表达式在 MySQL 中强制执行数据检查。首先,您需要创建一个表。之后,您需要在插入表之前创建一个触发器。在这里,我们将检查号码格式。

创建表的查询如下

mysql> create table enforceDataUsingRegularExpression

   - > (

   - > yourPhoneNumber varchar(60)

   - > );

创建触发器的查询如下

mysql> DELIMITER //

mysql> CREATE TRIGGER enforce_phone_check BEFORE INSERT ON enforceDataUsingRegularExpression

   - > FOR EACH ROW

   - > BEGIN

   - > IF (NEW.yourPhoneNumber REGEXP '^(\\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN

   - > SIGNAL SQLSTATE '33455'

   - > SET MESSAGE_TEXT = 'Your Phone Number is incorrect';

   - > END IF;

   - > END //

mysql> DELIMITER ;

现在看看在表中插入记录以使用正则表达式在MySQL中强制数据检查时的错误

mysql> insert into enforceDataUsingRegularExpression values("+55242-64576");

ERROR 1644 (33455): Your Phone Number is incorrect

mysql> insert into enforceDataUsingRegularExpression values("+76-WD1232221");

ERROR 1644 (33455): Your Phone Number is incorrect

Now inserting the correct data i.e. the correct phone, which is as follows:

mysql> insert into enforceDataUsingRegularExpression values("+55-1232221");

使用 select 语句显示表中的所有记录。

查询如下

mysql> select *from enforceDataUsingRegularExpression;

以下是输出

+-----------------+

| yourPhoneNumber |

+-----------------+

| +55-1232221     |

+-----------------+

1 row in set (0.00 sec)

以上是 是否可以使用正则表达式在 MySQL 中强制执行数据检查? 的全部内容, 来源链接: utcz.com/z/317433.html

回到顶部