Dropwizard应用程序中的Postgres自动增量

时间:2017-10-31 11:50:10

标签: java postgresql dropwizard

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

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时,我就是这样做的

id INTEGER IDENTITY (1)

此处也IDENTITY可供选择,但当我尝试时,我收到错误

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

任何人都可以帮助我吗? 提前致谢

1 个答案:

答案 0 :(得分:1)

是的,建议使用id SERIAL

Postgres中没有IDENTITY,因此使用SERIAL列会自动创建一个用于填充值的序列,从而产生相同的确切行为。