在postgreSQL中创建表

问题描述 投票:0回答:6

我不明白这个查询有什么问题?查询工具不想在 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)
);
postgresql create-table
6个回答
153
投票

首先,

bigint(20) not null auto_increment
不起作用,只需使用
bigserial primary key
即可。那么
datetime
在 PostgreSQL 中就是
timestamp
。总而言之:

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

8
投票
-- 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;

4
投票

bigint(20) not null auto_increment
替换为
bigserial not null
datetime
作者:
timestamp


0
投票

要创建带有前缀的 N 个表,请使用此脚本。 此代码使用 for 循环和变量创建 10 个以前缀“sbtest”开头的表,即 sbtest1、sbtest2 ... sbtest10

创建表.sql

do $$
    DECLARE myvar integer;
begin
    for myvar in 1..10 loop
        EXECUTE format('CREATE TABLE sbtest%s (
        id SERIAL NOT NULL,
        k INTEGER NOT NULL,
        c CHAR(120) NOT NULL,
        pad CHAR(60) NOT NULL,
        PRIMARY KEY (id))', myvar);
    end loop;
end; $$

运行命令:psql -U 用户名 -d 数据库名 -f create_table.sql

命令:\d+ sbtest

id | k | c | pad
----+---+---+-----
(0 rows)

                                                   Table "public.sbtest1"
 Column |      Type      | Collation | Nullable |               Default               | Storage  | Stats
 target | Description
--------+----------------+-----------+----------+-------------------------------------+----------+------
--------+-------------
 id     | integer        |           | not null | nextval('sbtest1_id_seq'::regclass) | plain    |
        |
 k      | integer        |           | not null |                                     | plain    |
        |
 c      | character(120) |           | not null |                                     | extended |
        |
 pad    | character(60)  |           | not null |                                     | extended |
        |
Indexes:
    "sbtest1_pkey" PRIMARY KEY, btree (id)
Access method: heap

0
投票

对于 PostgreSQL 10 及以上版本(请避免使用串行)

CREATE TABLE article (
  article_id bigint generated always as identity primary key,
  article_name varchar(20) NOT NULL,
  article_desc text NOT NULL,
  date_added timestamp default NULL
);

-6
投票

请尝试这个:

CREATE TABLE article (
  article_id bigint(20) NOT NULL serial,
  article_name varchar(20) NOT NULL,
  article_desc text NOT NULL,
  date_added datetime default NULL,
  PRIMARY KEY (article_id)
);
© www.soinside.com 2019 - 2024. All rights reserved.