Java 在PostgreSQL中创建表时,如何指定列值的长度?
以下是我尝试创建表的方式:Java 在PostgreSQL中创建表时,如何指定列值的长度?,java,postgresql,postgresql-9.1,Java,Postgresql,Postgresql 9.1,以下是我尝试创建表的方式: CREATE TABLE namevalues ( seqid integer NOT NULL, name text(50) NOT NULL, value text(50), CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name) ); 我试过这么做,但没用。谁能告诉我该如何指定长度 使用varcha
CREATE TABLE namevalues
(
seqid integer NOT NULL,
name text(50) NOT NULL,
value text(50),
CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name)
);
我试过这么做,但没用。谁能告诉我该如何指定长度
使用varchar(50)代替文本(50)
因为
表示文本
数据类型没有大小,它允许变量具有无限长度
CREATE TABLE namevalues
(
seqid integer NOT NULL,
name varchar(50) NOT NULL,
value varchar(50),
CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name)
);
不要使用
text
,您需要varchar
CREATE TABLE namevalues
(
seqid integer NOT NULL,
name varchar(50) NOT NULL,
value varchar(50),
CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name)
);
从
文本:不限长度的变量
PostgreSQL中的
文本
类型没有大小。您可以这样修复它:
CREATE TABLE namevalues
(
seqid integer NOT NULL,
name text NOT NULL,
value text,
CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name)
);
或者使用
VARCHAR(50)
而不是TEXT
尝试使用VARCHAR(50)而不是TEXT(50):。好的,如果我的列的类型是integer呢?integer
有一个固定的范围,因此它的存储要求是预先知道的,您不能更改它TEXT
是无限的,您可以使用字符变化
数据类型来分配空间。@DmitryTsechoev:尽管此处不相关:请不要链接到手册的过时版本。使用current
而不是版本号:integer
有一个固定的范围,因此它的存储要求是预先知道的,您不能更改它。如果要更改数字的精度/小数位数,请使用numeric
例如。。。