如何在PostgreSQL中创建表时指定列值的长度?

时间:2014-08-12 06:40:39

标签: 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)
        );

我尝试过这样做,但这不起作用。任何人都可以告诉我该如何指定长度?

3 个答案:

答案 0 :(得分:1)

PostgreSQL中的TEXT类型没有大小。你可以像这样解决它:

CREATE TABLE namevalues
    (
      seqid integer NOT NULL,
      name text NOT NULL,
      value text,
      CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name)
    );

或使用VARCHAR(50)代替TEXT

答案 1 :(得分:0)

  

使用varchar(50)代替text(50)。

     

由于,

PostgreSQL APItext数据类型没有大小,它允许无限长度的变量

    CREATE TABLE namevalues
    (
      seqid integer NOT NULL,
      name varchar(50) NOT NULL,
      value varchar(50),
      CONSTRAINT namevalues_pkey PRIMARY KEY (seqid, name)
    );

<强> Reference

答案 2 :(得分:0)

不要使用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 docs ...

  

text:variable unlimited length