Sql Informix列的最大长度是多少,可以增加吗?
我正在尝试创建具有以下内容的表:Sql Informix列的最大长度是多少,可以增加吗?,sql,database,informix,Sql,Database,Informix,我正在尝试创建具有以下内容的表: CREATE TABLE GTW_WORKFLOW_MON ( WORKFLOW_NAME VARCHAR(255) NOT NULL, WORKFLOW_LOADED NUMERIC(20) NOT NULL, ACTIVITY_NAME VARCHAR(255) NOT NULL, FLAGS INTEGER NOT NULL, MONITOR_NAME VARCHAR(255) NOT NULL, CL
CREATE TABLE GTW_WORKFLOW_MON
(
WORKFLOW_NAME VARCHAR(255) NOT NULL,
WORKFLOW_LOADED NUMERIC(20) NOT NULL,
ACTIVITY_NAME VARCHAR(255) NOT NULL,
FLAGS INTEGER NOT NULL,
MONITOR_NAME VARCHAR(255) NOT NULL,
CLASSNAME VARCHAR(255) NOT NULL,
STR0 VARCHAR(255),
STR1 VARCHAR(255),
STR2 VARCHAR(255),
NUM0 VARCHAR(255),
NUM1 VARCHAR(255),
NUM2 VARCHAR(255),
DATE0 VARCHAR(255),
DATE1 VARCHAR(255),
DATE2 VARCHAR(255),
PRIMARY KEY (WORKFLOW_NAME, WORKFLOW_LOADED, ACTIVITY_NAME, MONITOR_NAME)
)
由于列长度不够大,因此失败。如果SQL语句在语法上有效,并且您提供了确切的错误消息,则会有所帮助。重新格式化并更正语法后,该语句如下所示:
CREATE TABLE gtw_workflow_mon
(
workflow_name VARCHAR(255) NOT NULL,
workflow_loaded NUMERIC(20) NOT NULL,
activity_name VARCHAR(255) NOT NULL,
flags INTEGER NOT NULL,
monitor_name VARCHAR(255) NOT NULL,
classname VARCHAR(255) NOT NULL,
str0 VARCHAR(255),
str1 VARCHAR(255),
str2 VARCHAR(255),
num0 VARCHAR(255),
num1 VARCHAR(255),
num2 VARCHAR(255),
date0 VARCHAR(255),
date1 VARCHAR(255),
date2 VARCHAR(255),
PRIMARY KEY(workflow_name, workflow_loaded, activity_name, monitor_name)
);
并且,当在具有2KB页面的系统上运行时,错误消息为:
SQL -550: Total length of columns in constraint is too long.
获取错误消息简要说明的标准方法是finderr
;它说:
$ finderr -550
-550 Total length of columns in constraint is too long.
The total size of all the columns listed in a UNIQUE, PRIMARY KEY, or
FOREIGN KEY clause is limited. The limit depends on the database server
in use, but all servers support a total of 120 bytes. The limit is the
same as the restriction on the total size of all columns in a composite
index. For additional information, see the CREATE TABLE statement in
the IBM Informix Guide to SQL: Syntax.
$
“总计120字节”应为“总计至少120字节”;这个下限适用于Informix SE。在IDS(Informix Dynamic Server)中,下限为255字节,但在较新的系统中,下限更大,当页面大小较大时,下限也更大
你有多种选择
-
你可以考虑为什么你的名字每个都需要255个字符-这是明智的(比如说,64就足够了)?
- 如果您的服务器版本足够新(我相信是10.00或更高版本),则可以在具有更大页面大小的dbspace中创建表