Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在PostgreSQL中创建表时,如何指定列值的长度?_Java_Postgresql_Postgresql 9.1 - Fatal编程技术网

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
例如。。。