sqlite - Sqlite中的输入屏蔽

标签 sqlite check-constraints

如何将注册号列的输入限制为AB-78的特定格式。前2个字符必须是字母,后两个数字必须是。我试过像[A-Z] [A-Z]-[0-9] [0-9],但在SQLite中不起作用。

最佳答案

使用GLOB运算符。它支持一组有限的匹配模式。您可以在包含GLOB表达式的列定义中添加CHECK约束(例如,作为CREATE TABLE语句的一部分),类似于

CHECK (column GLOB '[A-Za-z][A-Za-z]-[0-9][0-9]')


GLOB模式区分大小写,因此我同时包含了大写和小写字符范围。如果需要特殊情况,则只需删除字符类中的其他范围。

有关LIKE,REGEXP和GLOB的更多信息,请参见online docs。可以在here上找到有关GLOB模式的信息,或进行网络搜索。有许多页面提供更多信息。我不认为内置的GLOB函数支持所有命名的字符类。

关于sqlite - Sqlite中的输入屏蔽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742828/

相关文章:

ios - 如何在 Swift 中使用查询语句检索数据?

sql-server - 根据另一个表中的信息检查约束

sql - Oracle SQL Developer 限制数据类型 char(5) 的字符数

sql - Postgres 9.x 中 CHECK 约束的成本是多少?

sqlite - EF Core SqLite 内存中没有这样的表?

java - 使用 Java 将 MySql 表复制到 Sqlite

sqlite - 不将 SQLite DB 放在 NFS 上的 createrepo 解决方法?

sql - 如何在 SQLite 中使用阿拉伯逗号选择 SQL

sql - 添加检查约束不工作 SQL

sql-server - 检查约束不允许我添加数据