sql >> Databáze >  >> RDS >> PostgreSQL

Načítání sériového ID z dávkově vložených řádků v postgresql

Něco takového by mělo fungovat:

// 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 
}

Myslím (nejsem ne jistě!), že klíče jsou vráceny v pořadí, v jakém byly vygenerovány. Takže první řádek z ResultSet by měl mapovat na první "položku" ze seznamu, který zpracováváte. Ale ověřte si to!

Upravit

Pokud to nefunguje, zkuste zadat skutečné sloupce, pro které jsou hodnoty generovány:

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



  1. MYSQL - Vložit, pokud je tabulka prázdná

  2. Jak funguje TIME_TO_SEC() v MariaDB

  3. Každý konkrétní den v týdnu, sql a php

  4. MySQL :chyba ve vaší syntaxi SQL | LIMIT 0, 25