PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Pobieranie identyfikatora seryjnego z partii wstawionych wierszy w postgresql

Coś takiego powinno działać:

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

Myślę (nie) Pewnie!), że klucze są zwracane w kolejności ich wygenerowania. Tak więc pierwszy wiersz z zestawu wyników powinien być mapowany na pierwszy „element” z przetwarzanej listy. Ale zweryfikuj to!

Edytuj

Jeśli to nie zadziała, spróbuj określić rzeczywiste kolumny, dla których generowane są wartości:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wybrać zakres dat w postgresie?

  2. Skrypt powłoki do wykonywania poleceń pgsql w plikach

  3. Jak uzyskać wyniki postgresql_query z Ansible?

  4. Synchronizacja bazy danych 2 nie powiodła się

  5. Termin składni SQL dla „GDZIE (col1, col2) <(val1, val2)”