Preciso obter os campos “Primary key (PK)” do todas as tabelas de um database no firebird.
alguém poderia me fornecer essa solução ??
Grato a todos…
Preciso obter os campos “Primary key (PK)” do todas as tabelas de um database no firebird.
alguém poderia me fornecer essa solução ??
Grato a todos…
select * from all_constraints where constraint_type like ‘P’?
No Oracle faço assim 
tenta assim
select C.RDB$CONSTRAINT_NAME AS NOME, C.RDB$RELATION_NAME AS TABELA,
C.RDB$CONSTRAINT_TYPE AS TIPO from rdb$relation_constraints C
where C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
Pessoal, consegui caminhar mas ainda encontro problemas.
public void getMaxPK() throws SQLException {
Connection connection = new JDBCConnection().getConnection();
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet rs = dbmd.getPrimaryKeys(null, null, null);
while(rs.next()){
String tabela = rs.getString(“TABLE_NAME”);
String pk = rs.getString(“PK_NAME”);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(
"SELECT MAX(" + pk + ") FROM " + tabela + ";");
@SuppressWarnings("unused")
int valor = 0;
while(resultSet.next()){
valor = resultSet.getInt(1);
}
System.out.println("Nome da Tabela:\t\t\t" + tabela +
"\nNome do Campo-PK:\t\t" + pk +
"\nÚltimo Valor do Campo-PK:\t" + pk + "\n\n");
}
}
O código em negrito me retorna o valor da campo constraint da Primary Key e não o valor do campo que contem o mone da chave primária da tabela.
Bem se alguem conseguir dar continuidade, só falta resolver como pegar o nome da coluna da chave primária que bata com o valor desse constraint.
fredferrao,
RDB$CONSTRAINT_NAME retorna o o pk mas o valor constraint e preciso dos valores da Pk das tabelas e não da de sistemas.
O que exatamente vc esta tentando fazer???