MySQL Exclua Cascade

MySQL Exclua Cascade
No MySQL, a declaração sobre excluir cascata está sendo usada para retirar linhas correspondentes da tabela criança implicitamente sempre que as linhas são removidas da tabela pai. Este é um tipo relativo de comportamento contextual relacionado a chave estrangeira.

Supondo que você tenha produzido duas tabelas com uma chave estrangeira dentro de um relacionamento de chave estrangeira, tornando um pai e uma mesa filho. Depois disso, um destinado a uma chave estrangeira deve ser corrigida para que outro seja bem -sucedido ao longo das atividades em cascata, então especificamos uma declaração de exclusão em cascata de exclusão. Talvez se uma única declaração de chave estrangeira determinar a cascata de exclusão, as funções em cascata desencadeará uma exceção.

Vamos entender como ao longo da tabela MySQL, poderíamos usar a declaração ON DELETE CASCADE.

Você deve abrir o shell cliente de linha de comando MySQL recentemente instalado para prosseguir com o trabalho. Após a abertura, você será solicitado a inserir sua senha para continuar usando o shell do cliente da linha de comando mysql, conforme anexado abaixo.

Em seguida, vamos construir duas tabelas chamadas "ordem" e "cliente". Ambas as tabelas mútuas estão conectadas com a função de exclusão em cascata, utilizando uma chave estrangeira. Um "pedido" é a tabela pai neste momento, e a tabela infantil é o "cliente". Com os scripts que o acompanham, junto com os respectivos registros, você deve construir as duas tabelas. Use o comando "Use abaixo" para selecionar o banco de dados em que você deseja trabalhar ou criar tabelas dentro. Aqui "dados" é o banco de dados que estamos usando.

>> Use dados;

Crie a tabela pai:

Primeiro de tudo, você deve criar a tabela "Order" junto com seus campos usando o comando CREATE TABLE, como mostrado na consulta abaixo. A coluna "ID" será usada na próxima tabela "cliente" como uma chave estrangeira.

>> Crie dados da tabela.Ordem (ID int Primária Chave Primária Auto_increment Not NULL, Item Varchar (50) Não NULL, Preço Varchar (50) NÃO NULL);

Vamos adicionar alguns dados a esta tabela. Você deve executar as consultas abaixo da balança no shell da linha de comando MySQL e executar cada comando individualmente na linha de comando ou simplesmente adicionar todos os comandos na linha de comando em uma única etapa. Você também pode usar a GUI do MySQL Workbench para adicionar dados à tabela.

Agora vamos verificar a tabela "Order" depois de colocar valores nela. Você pode usar o comando SELECT para esse fim da seguinte forma:

>> Selecione * FROM dados.ordem;

Você pode ver que os dados foram salvos com sucesso na tabela "Ordem" conforme o esperado.

Crie a tabela infantil com excluir cascata:

Agora, é a vez que outra mesa chamada "Cliente" seja criada.

Primeiro, você deve digitar a palavra -chave "Criar" junto com o nome da tabela. Em seguida, você deve adicionar nomes de campo ou colunas junto com seus tipos de dados. Você deve nomear a última coluna, que será usada como chave estrangeira nesta tabela, a mesma que a nomeou na tabela anterior. Como você sabe, a coluna "ID" da tabela "Ordem" foi usada como a chave estrangeira na tabela "Cliente" como "OrderId". Depois disso, você deve adicionar a palavra -chave "restrição", usada para inicializar a chave estrangeira, juntamente com a referência da tabela anterior. Agora você tem que usar a declaração "excluir cascata" junto com a palavra -chave "on".

>> Crie dados da tabela.Customer (Custid int não nulo Auto_increment Primário Chave, nome Varchar (45) NÃO NULL, OrderId int não nulo, restrição Order_id_fk Chave estranha (OrderId) Referências Dados.ordem (id) em excluir cascata);

Depois que a tabela foi criada e a Cascade de Excluir foi exercida com sucesso nesta tabela, é hora de inserir alguns valores nesta tabela. Experimente as instruções abaixo, uma a uma no shell cliente da linha de comando MySQL para fazer isso.

Posteriormente, faça a inserção de consultas. É um ponto para verificar a tabela se os dados foram adicionados com sucesso ou não. Portanto, tente isso abaixo do comando para fazer isso:

>> Selecione * FROM dados.cliente;

Aqui, você pode ter um vislumbre da saída da tabela que os dados são atribuídos com eficiência a ele e sem nenhum erro ou culpa.

Excluir registros:

Agora, quando você excluir qualquer dados ou linha da tabela pai, ele também excluirá os dados ou a linha da tabela infantil devido à cascata de exclusão habilitada na chave estrangeira mencionada na tabela infantil. Vamos tentar a consulta Excluir primeiro e depois verificar os resultados. Estaremos excluindo os dados da tabela "Ordem" em que o "ID" é "11". Se o mesmo "ID" for encontrado na tabela "Cliente" na coluna de chave estrangeira, "OrderId", a linha ou dados relativos na tabela "cliente" também será excluído. Experimente o comando abaixo na linha de comando para fazer isso:

>> Exclua dos dados. encomende onde id = '11';

Primeiro, vamos verificar a tabela pai. Em seguida, digite o comando select encontrado abaixo para recuperar os registros restantes da tabela "Ordem" "após a exclusão de alguns registros. Você verá que o registro da tabela, onde o "id" era "11", foi excluído com sucesso desta tabela. Isso significa que os registros relativos do mesmo valor de identificação, "11", seriam excluídos da tabela infantil também.

>> Selecione * FROM dados.ordem;

Buscar os registros da tabela infantil usando o comando select é tão simples quanto você antes. Apenas tente o comando abaixo, e você terá os resultados.

Ao obter os resultados, você pode ver que o registro de "custid" com um valor de "1" que foi excluído totalmente. Isso ocorre porque a coluna "OrderId" tem um valor de "11" em sua primeira linha, o que leva à exclusão dessa linha.

>> Selecione * FROM dados.cliente;

Quando você tenta soltar a tabela pai usando o comando Drop, o MySQL o impedirá de fazer isso. Isso ocorre porque a tabela parental permitiu a cascata de exclusão nela. Então, para largar a mesa, você deve primeiro remover a cascata de exclusão dela.

Conclusão:

Fizemos com a explicação de excluir cascata em mysql. Para deixar mais claro, tente mais exemplos no seu fim.