关于java:Dropwizard应用程序中的Postgres自动增量

Auto Increment in Postgres from Dropwizard Application

本问题已经有最佳答案,请猛点这里访问。

我正在将我的dropwizard应用程序与Postgres数据库连接。 我在启动应用程序服务器时动态创建表。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private static void createTableUser(Connection connection) throws SQLException {
    Statement statement= connection.createStatement();
    statement.executeUpdate("CREATE TABLE USERR"
            +"("+
           "id INTEGER,"+
           "first_name VARCHAR(20),"+
           "middle_name VARCHAR(20),"+
           "last_name VARCHAR(20),"+
           "age INTEGER,"+
           "image_url VARCHAR(250),"+
           "joining_date DATE ,"+
           "country_code INTEGER,"+
           "mobile_no VARCHAR(20),"+
           "email_id VARCHAR(20),"+
           "CONSTRAINT pk_user PRIMARY KEY (id)"+
           ")"
    );
    statement.close();
}

上面是创建我的表的功能。 这样它运作得很好。 但我想将id设为自动增量。 我浏览了一些提出关键字"SERIAL","BIGSERIAL","SMALLSERIAL"的文章。

当我使用sql server时,我就这样做了

1
id INTEGER IDENTITY (1)

在这里也可以选择IDENTITY,但是当我尝试它时,我遇到了错误

1
Exception in thread"main" org.postgresql.util.PSQLException: ERROR: syntax error at or near"IDENTITY"

谁能帮我?
提前致谢


是的,像建议的那样使用id SERIAL

Postgres中没有IDENTITY,因此使用SERIAL列将自动创建用于填充值的序列,从而提供相同的确切行为。