Como obtenho uma lista de todas as restrições de um banco de dados específico?
mysql
database-design
constraints
Lolajl
fonte
fonte
Respostas:
Use a
information_schema.table_constraints
tabela para obter os nomes das restrições definidas em cada tabela:Use a
information_schema.key_column_usage
tabela para obter os campos em cada uma dessas restrições:Se, em vez disso, você estiver falando sobre restrições de chave estrangeira, use
information_schema.referential_constraints
:fonte
information_schema.columns.column_default
.Ótima resposta por @Senseful.
Estou apresentando a consulta modificada para aqueles que procuram apenas a lista de nomes de restrições (e não outros detalhes / colunas):
fonte
Isso realmente ajuda se você deseja ver as restrições de chave primária e estrangeira, bem como as regras em torno dessas restrições, como ON_UPDATE e ON_DELETE e os nomes de coluna e coluna estrangeira todos juntos:
Você pode até querer adicionar mais informações sobre essas colunas, simplesmente adicione-as ao SQL (e selecione as colunas que deseja):
fonte
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = "tabnam";
fonte