Recursos de restrições de chave estrangeira:
Algumas características importantes da restrição de chave estrangeira são explicadas abaixo.
Pré -requisito:
Antes de criar uma restrição de chave estrangeira, você deve criar um banco de dados e uma tabela pai com a chave primária. Suponha que o nome do banco de dados seja 'biblioteca'e contém duas tabelas de pais denominadas'livros' e 'mutuário'. Faça uma conexão com o MySQL Server usando o mysql cliente e execute as seguintes instruções SQL para criar o banco de dados e as tabelas.
Criar biblioteca de banco de dados;Defina a restrição de chave estrangeira usando a declaração de criação
Crie uma tabela chamada 'book_borrow_info'Com restrições de chave estrangeira executando a seguinte declaração. Aqui o book_id o campo é a Chave estrangeira para esta tabela e todo valor desse campo deve existir no eu ia Campo de livros mesa. livros é a tabela pai e book_borrow_info é a mesa infantil. Duas restrições também são definidas com a chave estrangeira aqui. Estes são Excluir cascata e Atualize Cascade. Isso significa que, se alguma chave primária remover ou atualizar da tabela pai, os registros correspondentes relacionados à tabela infantil relacionados à chave estrangeira serão removidos ou a chave estrangeira será atualizada.
Criar tabela book_borrow_info (Agora, execute as seguintes declarações SQL para inserir alguns registros em ambas as tabelas. A primeira declaração de inserção inserirá quatro registros em livros mesa. Os quatro valores de eu ia Campo de livros A tabela será 1, 2, 3 e 4 para o atributo de incremento automático. A segunda declaração de inserção inserirá quatro registros em book_borrow_info com base no eu ia valor de livros mesa.
Insira os valores dos livrosSe você tentar inserir um valor no campo de chave estrangeira da tabela infantil que não existe no campo chave primário da tabela pai, o MySQL gerará um erro. A seguinte instrução SQL gerará um erro porque a tabela pai, livros não contém nenhum valor de identificação 10.
Inserir em book_borrow_info valoresDepois de executar a seguinte declaração de exclusão, quando o quarto recorde será removido do livros tabela então os registros relacionados do book_borrow_info A tabela será removida automaticamente para a restrição de chave estrangeira.
Exclua dos livros onde id = 4;Defina a restrição de chave estrangeira usando a declaração alterada
A princípio, insira alguns registros em mutuários Tabela e esta tabela serão definidas como tabela pai no próximo ALTERAR declaração.
Insira os valores dos mutuáriosExecute o seguinte ALTERAR declaração para definir outra restrição de chave estrangeira para book_borrow_info tabela para fazer o relacionamento com mutuários mesa. Aqui, emprestado_id é definido como uma chave estrangeira para book_borrow_info mesa.
ALTER TABLE BOOK_BORROW_INFO Adicionar restrição FK_BRORER
Chave estrangeira (Borrow_Id) Referências Matores (ID) na Cascade Excluir na atualização RESTRITION;
Agora, insira um recorde em book_borrow_info com válido emprestado_id valor que existe em eu ia Campo de mutuários mesa. 157643 O valor existe na tabela de mutuários e a seguinte declaração de inserção será executada com sucesso.
Inserir em book_borrow_info valoresA instrução Inserir a seguir gerará uma mensagem de erro porque o valor do ID 195680 não existe na tabela de mutuários.
Inserir em book_borrow_info valoresConclusão:
Definir restrições de chave estrangeira corretamente é uma tarefa muito importante para criar um banco de dados relacional e gerenciar dados entre as tabelas adequadamente. Conhecer os usos de restrições de chave estrangeira é muito essencial para os designers de banco de dados. Espero que este artigo ajude os novos designers de banco de dados a entender o conceito de restrições de chave estrangeira e a aplicá -las corretamente em suas tarefas.