代码之家  ›  专栏  ›  技术社区  ›  kender DaveL

PostgreSQL-如何禁止在某些字符串字段中使用空格

  •  1
  • kender DaveL  · 技术社区  · 15 年前

    我想禁止在某些文本/varchar字段中使用空格。

    更重要的是,最好只允许使用一组字符,例如:

    [a-zA-Z0-9_\-]
    

    我想把它作为一个规则 VARCHAR 属于的成员的字段 primary key 在他们的桌子上。

    这应该在数据库级别上完成,并且在尝试插入错误的记录或将关键字字段更改为无效值时可能引发异常。

    这可以在数据库级别内完成吗?我应该用吗? Pl/Perl 或者有更简单的方法吗?

    3 回复  |  直到 15 年前
        1
  •  5
  •   user80168    15 年前

    您甚至不需要存储过程:

    alter table xxx add constraint check_valid_chars check ( your_column ~ '^[a-zA-Z0-9_\-]+$' );
    

    应该工作。

        2
  •  4
  •   Milen A. Radev    15 年前

    你可以定义一个域,看 http://www.postgresql.org/docs/current/interactive/sql-createdomain.html 在底部,有一个关于美国邮政编码的例子。

        3
  •  0
  •   Christian V    15 年前

    看到你最新的评论,你也许可以使用检查约束和regex搜索? 但是您必须修改模式(表)并为每个字段插入它。

    推荐文章