PostgreSQL中CREATE TABLE的基本语法

时间:2015-08-27 12:14:04

标签: sql postgresql ddl postgresql-8.4 unique-key

我第一次使用PostgreSQL。我有这样的声明:

CREATE TABLE IF NOT EXISTS sequences (
  SEQU_NK   SERIAL PRIMARY KEY NOT NULL UNIQUE,
  NOM_SEQU varchar(30) NOT NULL,
  PROCHAIN bigint NOT NULL,
  PRIMARY KEY (SEQU_NK),
  UNIQUE KEY IDX_SEQU_NOM (NOM_SEQU)
)

当我跑步时,我得到:

ERROR:  syntax error at or near "KEY"
LINE 6:   UNIQUE KEY IDX_SEQU_NOM (NOM_SEQU)
                 ^
********** Error **********

ERROR: syntax error at or near "KEY"

2 个答案:

答案 0 :(得分:0)

试试这样:

CREATE TABLE IF NOT EXISTS sequences (
  SEQU_NK   SERIAL PRIMARY KEY NOT NULL UNIQUE,
  NOM_SEQU varchar(30) NOT NULL,
  PROCHAIN bigint NOT NULL,
  CONSTRAINT "IDX_SEQU_NOM" UNIQUE (NOM_SEQU)
) 

<强> SQLFIDDLE DEMO

答案 1 :(得分:0)

CREATE TABLE sequences (
  sequ_nk  serial PRIMARY KEY,
  nom_sequ varchar(30) NOT NULL UNIQUE,
  prochain bigint NOT NULL
);

它是UNIQUE,而不是 UNIQUE KEY 只能有一个 PRIMARY KEY PRIMARY KEY列自动为UNIQUENOT NULL Read the manual.
Or, better yet, read the manual for your actual Postgres version 8.4 - 告诉您版本8.4中尚未实现 IF NOT EXISTS (等待9.1)。
或者,更好的是,升级到Postgres的当前版本。 Version 8.4 has reached EOL last year.
旁白:不要使用带引号的大写标识符,或者必须始终引用它们。

相关问题