Problema:
Você deseja encontrar os nomes das restrições em uma tabela no MySQL.
Exemplo:
Queremos exibir os nomes das restrições na tabela
student
. Solução:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Aqui está o resultado:
TABLE_NAME | CONSTRAINT_TYPE | CONSTRAINT_NAME |
---|---|---|
aluno | CHAVE PRIMÁRIA | PRIMÁRIO |
aluno | ÚNICO | número_pessoal |
aluno | CHAVE ESTRANGEIRA | student_ibfk_1 |
aluno | VERIFICAR | aluno_chk_1 |
Discussão:
Use a visualização
table_constraints
no information_schema
esquema. Esta visualização contém muitas colunas, mas as mais importantes são table_name
, constraint_type
e constraint_name
. A coluna table_name fornece o nome da tabela na qual a restrição é definida e a coluna constraint_name
contém o nome da restrição. A coluna constraint_type
indica o tipo de restrição:PRIMARY KEY
para o tipo de chave primária, FOREIGN KEY
para o tipo de chave estrangeira, UNIQUE
para os valores exclusivos e CHECK
para a verificação de restrição. Em nosso exemplo, você pode ver a restrição chamada PRIMARY
para a chave primária no student
tabela. O constraint_type
coluna fornece informações sobre o tipo de cada restrição; para a chave primária, é PRIMARY KEY
.