我有以下代码使用java将数据输入数据库。但是,第一列实际上是由postgresql数据库自动生成的。现在,我将如何更改代码以使其不触及第一列?
String sql = "insert into members values (?,?,?,?)";
PreparedStatement pst = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); // I used RETURN_GENERATED_KEYS, but I don't know how to utilize it.
pst.setInt(1, memid); // I want this line to be skipped
pst.setInt(2, birthyear);
pst.setString(3, familyname);
pst.setString(4, givenname);
// Executing the insert
pst.executeUpdate();
答案 0 :(得分:2)
包括要在SQL中插入的字段列表:
insert into members (birthyear, familyname, givenname) values (?,?,?)
这样,第一列的值将具有其默认(自动生成)值。
答案 1 :(得分:0)
假设我有两个名为“name”,“email”的列, 然后我可以使用此代码将值插入包含表的数据库(std_tb) 有两列
String s_name="ayman";
String s_email="mamstricks";
PreparedStatement ps=con.prepareStatement("insert into std_tb(name,mail) values(?,?)");
ps.setString(1, s_name);
ps.setString(2, s_email);
ps.executeUpdate();
如果我只想插入第二列,那么我可以将此代码用于包含两列
的同一个表String s_email="ayman";
PreparedStatement ps=con.prepareStatement("insert into std_tb(mail) values(?)");
ps.setString(1, s_email);
ps.executeUpdate();
但不要忘记设置第一列为空值,如果你使用的是wamp或xampp,那么你可以通过"http://localhost/phpmyadmin/"
然后访问你的表然后在空框上打勾标记