【发布时间】:2010-07-29 02:11:28
【问题描述】:
在 Oracle db 中,我们有一个包含 varchar2 类型列的表(例如 USERNAME)。如何为此列设置精确(或至少最小)长度?这样所有插入此表的用户名只能是 10 个(或必须至少为 10 个)字符长。
【问题讨论】:
标签: oracle
在 Oracle db 中,我们有一个包含 varchar2 类型列的表(例如 USERNAME)。如何为此列设置精确(或至少最小)长度?这样所有插入此表的用户名只能是 10 个(或必须至少为 10 个)字符长。
【问题讨论】:
标签: oracle
您可以使用检查约束:
CREATE TABLE mytable (
mycolumn varchar2(50),
constraint strlen check (length(mycolumn) > 2)
)
或类似的东西。不过,我不确定它的性能如何。
【讨论】:
或者只是为了好玩,
CREATE TABLE testit
( mycolumn VARCHAR2(20) CONSTRAINT min_length_chk CHECK (mycolumn LIKE '__%') );
虽然它没有 LENGTH() 方法那么明确,所以我不确定我是否推荐它,除非作为相关问题的想法。
【讨论】: