对使用数字变化的字符的约束

时间:2012-03-20 02:17:32

标签: sql constraints

我有这段代码(只是摘录)......

CREATE TABLE "Degree"
(
  ippp_code character varying(5) CONSTRAINT four_or_five_chars_only CHECK (ippp_code >= 4 OR ippp_code <= 5) NOT NULL
)

我尝试做的是使ippp_code最多5个字符或最少4个字符。所以你只能输入4或5个字符。

当我运行代码时,我收到一条错误消息,说明......

  

错误:运算符不存在:字符变化&gt; =整数提示:   没有运算符匹配给定的名称和参数类型。你可能会   需要添加显式类型转换。

     

*** 错误 ** *

     

错误:运算符不存在:字符变化&gt; =整数SQL   state:42883提示:没有运算符匹配给定的名称和参数   类型。您可能需要添加显式类型转换。

我想知道我可以使用我设置的使用字符变化的约束吗?我也可以对代码进行修正吗?

2 个答案:

答案 0 :(得分:2)

CREATE TABLE "Degree" 
( 
  ippp_code character varying(5) CONSTRAINT four_or_five_chars_only CHECK (length(ippp_code) >= 4 OR length(ippp_code) <= 5) NOT NULL 
) 

您试图检查ippp_code的值是否介于4和5之间,而不是长度。

答案 1 :(得分:1)

试试这个:

CREATE TABLE Degree
(
  ippp_code varchar2(5) not null, 
  CONSTRAINT four_or_five_chars_only 
  CHECK (length(ippp_code) between 4 and 5)
);