# Chaves autogeradas

A funcionalidade de chaves autogeradas do JDBC 3.0 fornece uma maneira de obter valores de colunas que fazem parte de um índice ou possuem um valor padrão atribuído. O Derby suporta a funcionalidade de auto-incremento, que permite aos usuários criarem colunas em tabelas para as quais o sistema de banco de dados atribui automaticamente valores inteiros incrementais. No JDBC 3.0, pode ser chamado o método Statement.getGeneratedKeys para obter o valor de uma coluna como esta. Este método retorna um objeto ResultSet com uma coluna para a chave gerada automaticamente. Chamando-se ResultSet.getMetaData no objeto ResultSet retornado por getGeneratedKeys produz um objeto ResultSetMetaData semelhante ao retornado por IDENTITY_VAL_LOCAL. Quando a instrução é executada ou preparada, deve ser passado para os métodos execute, executeUpdate ou prepareStatement um sinalizador indicando que devem ser retornadas todas as colunas autogerada.

Abaixo segue um exemplo que retorna um ResultSet com valores para as colunas autogeradas da TABELA1:

    Statement stmt = conn.createStatement();
    int rows = stmt.executeUpdate("INSERT INTO TABELA1 (C11, C12) VALUES (1,1)",
      Statement.RETURN_GENERATED_KEYS);
    ResultSet rs = stmt.getGeneratedKeys();

Para utilizar chaves autogeradas nas instruções INSERT deve ser passado o sinalizador `Statement.RETURN_GENERATED_KEYS` para o método execute ou executeUpdate. O Derby não suporta a passagem de nomes de colunas ou índices de colunas para os métodos execute, executeUpdate e prepareStatement.

Tópico pai: java.sql.Statement