PostgreSQL 中 CREATE TABLE 的基本语法
Basic syntax for CREATE TABLE in PostgreSQL
我是第一次使用 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"
这样试试:
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)
)
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
列自动为 UNIQUE
和 NOT NULL
。
Read the manual.
Or, better yet, read the manual for your actual Postgres version 8.4 - 这告诉你 IF NOT EXISTS
尚未在 8.4 版中实现(等待 9.1)。
或者,更好的是,升级到当前版本的 Postgres。 Version 8.4 has reached EOL last year.
旁白:不要使用带引号的大写标识符,否则您必须始终将它们引号。
我是第一次使用 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"
这样试试:
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)
)
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
列自动为 UNIQUE
和 NOT NULL
。
Read the manual.
Or, better yet, read the manual for your actual Postgres version 8.4 - 这告诉你 尚未在 8.4 版中实现(等待 9.1)。IF NOT EXISTS
或者,更好的是,升级到当前版本的 Postgres。 Version 8.4 has reached EOL last year.
旁白:不要使用带引号的大写标识符,否则您必须始终将它们引号。