在postgreSQL中创建表

66 postgresql create-table

我不明白这个查询有什么问题?查询工具不希望在PostgreSQL中创建表.

CREATE TABLE article (
article_id bigint(20) NOT NULL auto_increment,
article_name varchar(20) NOT NULL,
article_desc text NOT NULL,
date_added datetime default NULL,
PRIMARY KEY (article_id)
);
Run Code Online (Sandbox Code Playgroud)

A.H*_*.H. 127

首先bigint(20) not null auto_increment不会起作用,只需使用bigserial primary key.然后datetimetimestampPostgreSQL中.总而言之:

CREATE TABLE article (
    article_id bigserial primary key,
    article_name varchar(20) NOT NULL,
    article_desc text NOT NULL,
    date_added timestamp default NULL
);
Run Code Online (Sandbox Code Playgroud)

  • 为什么,`auto_increment`是一个MySQL功能.Postgres使用`serial`列来实现相同的目的. (4认同)
  • @BradKoch:是的,不是.PostgreSQL提供`serial`和`bigserial`.由于Q包含`bigint(20)`我在答案中选择了'bigserial`.在这种情况下,这是一个更好的匹配. (3认同)
  • 鉴于OP的明显用例作为博客文章引擎,最大序列大小为20亿条目(序列)应该足够,除非他非常多产.;)但是,仍然,bigserial与bigint更接近. (2认同)

kn3*_*n3l 5

-- Table: "user"

-- DROP TABLE "user";

CREATE TABLE "user"
(
  id bigserial NOT NULL,
  name text NOT NULL,
  email character varying(20) NOT NULL,
  password text NOT NULL,
  CONSTRAINT user_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE "user"
  OWNER TO postgres;
Run Code Online (Sandbox Code Playgroud)