Reputation: 13
I woudlike to generate automatically a new id (primary key) when I use INSERT INTO
:
String id = "1";
PreparedStatement prep = conn.prepareStatement("INSERT INTO TABLE (id) VALUES(?)");
prep.setString(1, id); // generate new id
prep.executeUpdate();
Actually I set 1 to my id
but if I want to generate more INSERT INTO
How can I INSERT INTO new value with new id ?
Upvotes: 0
Views: 1087
Reputation:
Use an identity column:
create table foo
(
id integer primary key generated always as identity,
some_column text,
...
)
Then use PreparedStatement.getGeneratedKeys()
int id = -1;
PreparedStatement prep = conn.prepareStatement("INSERT INTO TABLE (some_column) VALUES(?)", Statement.RETURN_GENERATED_KEYS);
prep.setString(1, "some value");
prep.executeUpdate();
ResultSet rs = prep.getGeneratedKeys();
if (rs.next()) {
id = rs.getInt(1);
}
Upvotes: 2