mysql - 如果不匹配正则表达式,如何禁止在mysql中插入?

标签 mysql regex

我们知道我们可以使用 mysql 处理正则表达式:

SELECT * FROM events WHERE id REGEXP '5587$'

但是,如果我希望某些列仅具有特定的正则表达式,例如:

我的 table 是这样的:

User MAC
MARK FE:4D:A2:F1:F2:F3

查询是:

INSERT INTO table (User, MAC) VALUES (Mike,mark)

由于我们注意到查询尝试插入不是 MAC 地址的 mark,如何禁止这种情况或禁止任何不是 MAC 地址的插入?

注意:我使用 phpmyadmin 来管理我的数据库。

最佳答案

假设您使用INNOdb ,由于没有其他存储引擎支持约束,您可以添加 check constraint看起来像:

CHECK(mac RLIKE '^([0-9A-F]{2}:){6}$')

祝您好运,如果您需要进一步帮助,请发表评论。

关于mysql - 如果不匹配正则表达式,如何禁止在mysql中插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25517677/

相关文章:

mysql - Drupal 7 提要导入

python - 使用 python re 查找并替换我的文件名中的字符

python - 在python中使用正则表达式分割字符串

c# - C#/ Entity Framework 中的 LINQ 表达式

mysql - 尝试将数据插入 MySQL 时出现 "You have an error in your SQL syntax"

javascript - 正则表达式跨多行捕获两个标签之间的所有内容

javascript - JS 正则表达式显示 Number 包含 '.' 但实际上没有

python - 在 Python 中的字符前添加零

sql - 在 SQL 中如何获取整数的最大值?

MySQL REGEXP - 选择特定的数字和字符模式