我正在将我的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"
任何人都可以帮助我吗? 提前致谢
答案 0 :(得分:1)
是的,建议使用id SERIAL
。
Postgres中没有IDENTITY
,因此使用SERIAL
列会自动创建一个用于填充值的序列,从而产生相同的确切行为。