我需要创建一个具有自动递增主键的表,这样我就可以了:
String sql = "CREATE TABLE Home" +
"(id INTEGER not NULL AUTO_INCREMENT PRIMARY KEY, " +
" name VARCHAR(255), " +
" value DOUBLE PRECISION, " +
" data DATE " +
" )";
问题是当我执行此查询时,我得到:
Syntax error AUTO_INCREMENT
有人可以帮助我吗?
答案 0 :(得分:3)
PostgreSQL中没有auto_increment
。请改用serial
。
您的创建表语句应为:
create table Home (
id serial not null primary key,
name varchar(255),
value double precision,
data date
);
Here's updated documentation(关于完整的PostgreSQL数据类型)。
使用完全相同的工作示例来查看this DB-FIDDLE。
答案 1 :(得分:2)
如果您使用的是PostgreSQL v10或更高版本,则可能要使用符合标准的 identity列语法:
CREATE TABLE home (
id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar(255),
value double precision,
data date
);
除符合标准外,它的优点还在于,如果您尝试为id
列显式添加一个值,则会收到一条错误消息,该错误通常会导致与以后自动生成的冲突值。