代码之家  ›  专栏  ›  技术社区  ›  Baishampayan Ghose

如何更改PostgreSQL表并使列唯一?

  •  122
  • Baishampayan Ghose  · 技术社区  · 15 年前

    我在PostgreSQL中有一个表,其中的模式如下:

    CREATE TABLE "foo_table" (
        "id" serial NOT NULL PRIMARY KEY,
        "permalink" varchar(200) NOT NULL,
        "text" varchar(512) NOT NULL,
        "timestamp" timestamp with time zone NOT NULL
    )
    

    现在,我想通过改变表使permalink在整个表中都是唯一的。 有人能帮我吗?

    蒂亚

    3 回复  |  直到 8 年前
        1
  •  204
  •   Community Paul Sweatte    7 年前

    我从PostgreSQL文档中找到了它,确切的语法是:

    ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (thecolumn);
    

    谢谢 Fred .

        2
  •  178
  •   rdrey    10 年前

    或者,让数据库使用以下命令自动分配约束名:

    ALTER TABLE foo ADD UNIQUE (thecolumn);
    
        3
  •  27
  •   Vojtech Ruzicka Inv3r53    8 年前

    还可以创建一个以上列的唯一约束:

    ALTER TABLE the_table ADD CONSTRAINT constraint_name UNIQUE (column1, column2);