2012-04-23 7 views
0

私はjavaを使用してデータベースにデータを入力する次のコードを持っています。しかし、最初のカラムは実際にpostgresqlデータベースによって自動的に生成されます。今、最初の列に触れないようにコードをどのように変更すればよいですか?最初の列の値がデフォルト(自動生成)の値を持つことになります。この方法でJavaを使用してPostgreSQLに自動生成されたID番号を挿入するのをスキップできますか?

insert into members (birthyear, familyname, givenname) values (?,?,?) 

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

答えて

2

では、SQLで挿入したいフィールドのリストを含めます。

+0

"memid"カラムのnull値がnullでない制約に違反しています – krest

+0

が 'serial'に設定されたmemidカラムですか? – Hao

+0

"memid"が自動生成された列 –

0

は私がしたいならば、私は2つの列

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

とテーブル(std_tb) を含むデータベースに値を挿入するには、このコードを使用することができ、「名前」という名前の2つの列、「電子メール」、 を持っていると仮定します唯一の二列を挿入し、その後、私は2つの列

String s_email="ayman"; 
PreparedStatement ps=con.prepareStatement("insert into std_tb(mail) values(?)"); 
ps.setString(1, s_email); 
ps.executeUpdate(); 

を含む同じテーブルにこのコードを使用することができますが、あなたはその後、WAMPまたはXAMPPを使用している場合は、あなたが行うことができますが、ヌル値との最初の列を設定することを忘れないでくださいこれはになります次にテーブルにアクセスし、ヌルボックスに目盛りを付けます

関連する問題