【问题标题】:Oracle varchar2 minimum lengthOracle varchar2 最小长度
【发布时间】:2010-07-29 02:11:28
【问题描述】:

在 Oracle db 中,我们有一个包含 varchar2 类型列的表(例如 USERNAME)。如何为此列设置精确(或至少最小)长度?这样所有插入此表的用户名只能是 10 个(或必须至少为 10 个)字符长。

【问题讨论】:

    标签: oracle


    【解决方案1】:

    您可以使用检查约束:

    CREATE TABLE mytable (
      mycolumn varchar2(50),
      constraint strlen check (length(mycolumn) > 2)
    )
    

    或类似的东西。不过,我不确定它的性能如何。

    【讨论】:

    • 我假设您的意思是说.. 用您的最小尺寸替换“2”.. 是吗?
    • @ShoeLace 是的,你必须这样做
    【解决方案2】:

    或者只是为了好玩,

    CREATE TABLE testit
    ( mycolumn VARCHAR2(20) CONSTRAINT min_length_chk CHECK (mycolumn LIKE '__%') );
    

    虽然它没有 LENGTH() 方法那么明确,所以我不确定我是否推荐它,除非作为相关问题的想法。

    【讨论】:

      猜你喜欢
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 2020-09-27
      相关资源
      最近更新 更多