Como descobrir a Primary Key (chave primária) de uma Table (tabela) de um Data Base (banco de dados)

Bom… Esta é para conhecimento geral.

Certas vezes, precisamos no meio do código, saber qual é a PRIMARY KEY de uma tabela. Isto ocorre, normalmente, quando estamos fazendo algo para um Data Base Schema que não conhecemos, ou que estamos “remendando” às cegas.

Como resolver isso? Simples…

Vamos à teoria.

No MySQL, temos uma base aliada para solucionarmos este pepino: information_schema. Esta base é acessada por todos, para realizar o gerenciamento do próprio banco.

Nela temos tudo o que o banco gerencia em termos de schemas, tables, fields, etc… Mas cuidado aqui… Não tente dar uma de espertinho e alterar esta tabela, você não vai conseguir nada… Nem perca seu tempo… Além do que, você estará sendo monitorado, e dependendo de onde esteja “brincando”, já era…

Para saber quem é a PK de uma table, dentro da sua base de dados, mande o SQL:


SELECT information_schema.KEY_COLUMN_USAGE.COLUMN_NAME as COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE information_schema.KEY_COLUMN_USAGE.CONSTRAINT_NAME LIKE "PRIMARY" AND
information_schema.KEY_COLUMN_USAGE.TABLE_SCHEMA LIKE "aqui_vai_sua_base_de_dados" AND
information_schema.KEY_COLUMN_USAGE.TABLE_NAME LIKE "aqui_vai_a_tabela"';

Tá lá… Esta consulta devolverá a chave primária do Banco_de_Dados.Tabela solicitado.

Enjoy!