sql >> Database >  >> RDS >> PostgreSQL

Serie-ID ophalen uit batch-ingevoegde rijen in postgresql

Iets als dit zou moeten werken:

// tell the driver you want the generated keys
stmt =  c.prepareStatement("INSERT ... ", Statement.RETURN_GENERATED_KEYS);

stmt.executeBatch();

// now retrieve the generated keys
ResultSet rs = stmt.getGeneratedKeys();
while (rs.next()) {
 int id = rs.getInt(1);
 .. save the id somewhere or update the items list 
}

Ik denk (ik ben niet zeker!) dat de sleutels worden geretourneerd in de volgorde waarin ze zijn gegenereerd. Dus de eerste rij van de ResultSet moet worden toegewezen aan het eerste "item" uit de lijst die u aan het verwerken bent. Maar verifieer dat!

Bewerken

Als dat niet werkt, probeer dan de werkelijke kolommen te specificeren waarvoor de waarden worden gegenereerd:

stmt =  c.prepareStatement("INSERT ... ", new String[] {"id"});



  1. hoe de kolomwaarde slechts één keer wordt weergegeven als deze wordt herhaald en leeg is totdat een andere waarde in sql komt

  2. Java Date.toString in TO_DATE van Oracle

  3. SQL INSERT INTO… SELECT Voorbeelden

  4. Rollende dagelijkse verschillende tellingen