Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como selecionar todas as colunas sem chave PRIMARY no mysql?


Isso é algo que vale a pena pesquisar, se você estiver trabalhando com bancos de dados em qualquer extensão.

Todos os DBMS com os quais trabalhei até agora têm um meio de examinar as restrições, colunas e informações da tabela. Aqueles para MySQL que o ajudarão a fazer o que você deseja provavelmente estão no INFORMATION_SCHEMA:

TABLE_CONSTRAINTS A referência do MySQL para isso está aqui .
SELECT table_name, constraint_name, constraint_type FROM INFORMATION_SCHEMA.table_constraints;

COLUNAS A referência do MySQL para isso está aqui.
SELECT column_name FROM INFORMATION_SCHEMA.columns;

KEY_COLUMN_USAGE

Você deve ser capaz de fazer algo assim para obter o que deseja:
SELECT INFORMATION_SCHEMA.key_column_usage.column_name 
FROM INFORMATION_SCHEMA.key_column_usage
JOIN INFORMATION_SCHEMA.table_constraints 
ON INFORMATION_SCHEMA.key_column_usage.column_name = INFORMATION_SCHEMA.table_constraints.column_name
WHERE INFORMATION_SCHEMA.table_constraints.constraint_type <> 'PRIMARY KEY'

O deve ser essencialmente o que você precisa. Visualizações/tabelas como essas podem ser suas melhores amigas quando precisar obter informações sobre seu esquema.

Eu espero que essa informação ajude.