Pokud máme v tabulce definovány automaticky generované primární klíče, můžeme někdy potřebovat získat hodnoty těchto klíčů pro vložená data. Standardní postup je tento:
st.execute( "INSERT INTO myTable (b,c) VALUES ('hello',false);", Statement.RETURN_GENERATED_KEYS); ResultSet keys = st.getGeneratedKeys();
V proměnné keys
bude uložena tabulka s vygenerovanými klíči. Počet řádků této tabulky bude odpovídat počtu vložených řádků (a tudíž počtu vygenerovaných klíčů) a počet sloupců bude odpovídat počtu složek primárního klíče. Pokud bude primární klíč jednoduchý (tj. nebude složený) a bude vložen pouze jeden záznam, tabluka keys
bude obsahovat jeden řádek a jeden sloupec.
Bohužel ne všechny JDBC ovladače tento způsob získávání vygenerovaných klíčů podporují. Pokud ne, je nutné nahlédnout do dokumentace daného databázového serveru a zjistit, jestli existuje jiný způsob získání naposledy generovaných primárních klíčů. Většina serverů tuto informaci poskytuje prostřednictvím nějaké SQL funkce (např. MySQL poskytuje funkci LAST_INSERT_ID() a hsqldb funkci IDENTITY()).