从 Dropwizard 应用程序在 Postgres 中自动递增

Auto Increment in Postgres from Dropwizard Application

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

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();
}

以上是创建我的 table 的函数。这样它工作得很好。但我想让 id 自动递增。我浏览了给出关键字 "SERIAL", "BIGSERIAL", "SMALLSERIAL".

建议的文章

当我使用 sql 服务器时,我是按照

的方式进行操作的
id INTEGER IDENTITY (1)

这里也有 IDENTITY 作为选项可用,但是当我尝试它时出现错误

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

谁能帮帮我? 提前致谢

是的,按照建议使用 id SERIAL

Postgres 中没有 IDENTITY,因此使用 SERIAL 列将自动创建一个用于填充值的序列,给出完全相同的行为。