我正在将我的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服务器时,我就是这样做的
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
列将自动创建一个用于填充值的序列,给出相同的确切行为。