我不明白此查询出了什么问题?查询工具不想在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 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)
);
Answers:
首先,bigint(20) not null auto_increment将无法使用,只需使用即可bigserial primary key。然后datetime是timestamp在PostgreSQL中。总而言之:
CREATE TABLE article (
article_id bigserial primary key,
article_name varchar(20) NOT NULL,
article_desc text NOT NULL,
date_added timestamp default NULL
);
auto_increment是MySQL功能。Postgres将serial列用于相同目的。
serial和bigserial。由于Q中包含了bigint(20)我选择bigserial的答案。在这种情况下,这是一个更好的匹配。
更换bigint(20) not null auto_increment由bigserial not null并且
datetime通过timestamp
请尝试以下方法:
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)
);
bigint(20) 在Postgres中无效。另外,您不能同时指定bigint 和 serial。有关正确的语法,请参见接受的答案