Uso do modo de atualização segura do MySQL

Uso do modo de atualização segura do MySQL
Os dados da tabela do banco de dados MySQL podem exigir para atualizar ou excluir a qualquer momento com base no requisito. Se a atualização ou exclusão de consulta executar sem usar a cláusula WHERE, todos os registros da tabela serão atualizados ou excluídos acidentalmente. Se o modo de atualização seguro estiver ativado, o código de erro MySQL 1175 será gerado se a consulta Atualização ou Excluir for executada sem usar a cláusula WHERE. Mas, às vezes, requer excluir todos os registros da tabela ou atualizar todos os valores de uma coluna específica de uma tabela. Esse problema pode ser resolvido desativando o modo de atualização segura ou executando a consulta com uma cláusula que corresponderá a todas as linhas de tabela. A maneira de ativar ou desativar o modo de atualização segura para evitar exclusão ou atualização acidental foi mostrada neste tutorial.

Pré-requisitos:

Você precisa criar uma tabela de banco de dados com os dados em um banco de dados MySQL para verificar o uso do modo de atualização segura no MySQL.

Abra o terminal e conecte -se ao servidor MySQL executando o seguinte comando.

$ sudo mysql -u root

Execute o seguinte comando para criar um banco de dados nomeado test_db.

Criar banco de dados test_db;

Execute o seguinte comando para selecionar o banco de dados.

Use test_db;

Execute a seguinte consulta para criar uma tabela chamada clientes com cinco campos.

Clientes createTable (
Id Intnot NULL Primária Chave,
Nome Varchar (30) não nulo,
Email Varchar (50),
Texto do endereço,
contact_no varchar (15));

Execute a seguinte consulta de inserção para inserir quatro registros no clientes mesa.

Insira em 'clientes' ('id', 'nome', 'email', 'endereço', 'contact_no') valores
('4001', 'Laboni Sarkar', '[email protected] ', '34, dhanmondi 9/a, dhaka.',' 01844767234 '),
('4002', 'Tahsin Ahmed', '[email protected] ',' 123/1, Jigatola, Dhaka.',' 015993487812 '),
('4003', 'Hasina Pervin', '[email protected] ',' 280, shantibagh, dhaka.', NULO),
('4004', 'Mehrab Ali', '[email protected] ', '78, Paltan, dhaka…', '01727863459');

Verificando o valor atual do modo de atualização segura:

O sql_safe_updates A variável é usada para ativar ou desativar o modo de atualização segura do MySQL. O modo de atualização seguro está desativado por padrão. Execute o seguinte comando do prompt MySQL para verificar o valor atual do sql_safe_updates variável.

Mostrar variáveis ​​como "sql_safe_updates";

A saída a seguir mostra que o modo de atualização seguro está desativado.

Execute a atualização e exclua o comando depois de ativar o modo de atualização segura:

Execute os seguintes comandos para ativar o modo de atualização segura e verifique o valor do sql_safe_updates variável.

Defina sql_safe_updates = 1;
Mostrar variáveis ​​como "sql_safe_updates";

A saída a seguir mostra que o modo de atualização seguro está ativado agora.

Execute a consulta de atualização:

Execute o comando de atualização sem a cláusula onde verificar o modo de atualização segura está funcionando ou não para a operação de atualização. Se o modo de atualização seguro estiver ativado, o erro 1175 será gerado para a consulta de atualização.

Atualizar clientes Definir contact_no = '02 -458934679 ';

A saída a seguir mostra um erro gerado para a consulta de atualização sem onde a cláusula, e nenhuma operação de atualização foi feita.

Suponha que a consulta de atualização acima seja executada a partir de qualquer interface gráfica do usuário, como o phpmyadmin, onde o modo de atualização seguro é desativado por padrão. Nesse caso, a operação de atualização será feita com base na permissão do usuário. Se o usuário der permissão, então o contact_no campo de todos os registros do clientes A tabela será atualizada; Caso contrário, nada será feito.

Execute a consulta Excluir:

Execute o comando delete sem onde a cláusula para verificar o modo de atualização segura está funcionando ou não para a operação de exclusão. Se o modo de atualização seguro estiver ativado, o erro 1175 será gerado para a consulta de exclusão como a consulta de atualização.

Excluir dos clientes;

A saída a seguir mostra um erro gerado para a consulta de exclusão sem onde a cláusula, e nenhuma operação de exclusão foi feita.

Suponha que a consulta Excluir acima seja executada a partir de qualquer interface gráfica do usuário como Phpmyadmin, onde o modo de atualização seguro é desativado por padrão. Nesse caso, a operação de exclusão será feita com base na permissão do usuário, como a consulta de atualização. Se o usuário conceder permissão, todos os registros do clientes A tabela será excluída; Caso contrário, nada será feito.

Execute a atualização e exclua o comando após desativar o modo de atualização segura:

Execute os seguintes comandos para desativar o modo de atualização seguro e verificar o valor do sql_safe_updates variável.

Defina sql_safe_updates = 0;
Mostrar variáveis ​​como "sql_safe_updates";

A saída a seguir mostra que o modo de atualização seguro está desativado agora.

Como o comando de atualização anterior, execute o seguinte comando de atualização sem onde a cláusula para verificar a operação de atualização funciona ou não após desativar o modo de atualização segura.

Atualizar os clientes definir endereço = 'dhaka';

A saída a seguir mostra que a operação de atualização foi concluída sem nenhum erro e quatro linhas do clientes Tabela foi afetada.

Execute a seguinte consulta selecionada para verificar o conteúdo atual do clientes mesa.

Selecione * dos clientes;

A saída a seguir mostra que o valor da string atualizou todos os valores do campo de endereço, 'Dhaka '.

Como o comando de exclusão anterior, execute o seguinte comando de exclusão sem onde a cláusula para verificar a operação de exclusão funciona ou não após desativar o modo de atualização segura.

Excluir dos clientes;

A saída a seguir mostra que a operação de exclusão foi concluída sem erro.

Execute a seguinte consulta selecionada para verificar o conteúdo atual do clientes mesa.

Selecione * dos clientes;

A saída a seguir mostra que todos os registros do clientes Tabela foi excluída.

Conclusão:

O modo de atualização segura do MySQL é um recurso essencial para evitar atualizações indesejadas ou excluir operações por engano. A maneira de ativar e desativar esse modo definindo a variável necessária foi mostrada neste tutorial. Como a atualização e exclusão de operações sem a cláusula WHERE funcionam com base no modo de atualização segura também foram mostradas aqui usando uma tabela.