Uso del modo de actualización segura de MySQL

Uso del modo de actualización segura de MySQL
Los datos de la tabla de la base de datos MySQL pueden requerir actualizar o eliminar en cualquier momento según el requisito. Si la consulta actualización o eliminación se ejecuta sin usar la cláusula WHERE, entonces todos los registros de la tabla se actualizarán o eliminarán accidentalmente. Si el modo de actualización seguro está habilitado, se generará el código de error MySQL 1175 si la consulta de actualización o eliminación se ejecuta sin usar la cláusula WHERE. Pero a veces, requiere eliminar todos los registros de la tabla o actualizar todos los valores de una columna particular de una tabla. Este problema se puede resolver deshabilitando el modo de actualización segura o ejecutando la consulta con una cláusula que coincidirá con todas las filas de la tabla. La forma de habilitar o deshabilitar el modo de actualización segura para evitar la eliminación o actualización accidental se ha mostrado en este tutorial.

Requisitos previos:

Debe crear una tabla de base de datos con los datos en una base de datos MySQL para verificar el uso del modo de actualización segura en MySQL.

Abra el terminal y conéctese con el servidor MySQL ejecutando el siguiente comando.

$ sudo mysql -u root

Ejecute el siguiente comando para crear una base de datos llamada test_db.

Crear base de datos test_db;

Ejecute el siguiente comando para seleccionar la base de datos.

Usar test_db;

Ejecute la siguiente consulta para crear una tabla llamada clientes con cinco campos.

Clientes creables (
ID INTNOT Clave primaria NULL,
Nombre Varchar (30) No nulo,
Envíe un correo electrónico a Varchar (50),
Texto de dirección,
contact_no varchar (15));

Ejecute la siguiente consulta de inserción para insertar cuatro registros en el clientes mesa.

Insertar en 'clientes' ('id', 'nombre', 'correo electrónico', 'dirección', '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');

Comprobando el valor actual del modo de actualización segura:

El sql_safe_updates La variable se usa para habilitar o deshabilitar el modo de actualización segura de MySQL. El modo de actualización segura está deshabilitado de forma predeterminada. Ejecute el siguiente comando desde el indicador mySQL para verificar el valor actual del sql_safe_updates variable.

Mostrar variables como "SQL_SAFE_UPDATES";

La siguiente salida muestra que el modo de actualización segura está deshabilitado.

Ejecutar el comando de actualización y eliminar después de habilitar el modo de actualización segura:

Ejecute los siguientes comandos para habilitar el modo de actualización segura y verifique el valor del sql_safe_updates variable.

Establecer sql_safe_updates = 1;
Mostrar variables como "SQL_SAFE_UPDATES";

La siguiente salida muestra que el modo de actualización seguro está habilitado ahora.

Ejecutar la consulta de actualización:

Ejecute el comando de actualización sin la cláusula WHERE para verificar el modo de actualización segura está funcionando o no para la operación de actualización. Si el modo de actualización seguro está habilitado, el error 1175 se generará para la consulta de actualización.

Actualizar los clientes establecer contact_no = '02 -458934679 ';

La siguiente salida muestra un error generado para la consulta de actualización sin la cláusula Where, y no se ha realizado ninguna operación de actualización.

Suponga que la consulta de actualización anterior se ejecutará a partir de cualquier interfaz gráfica de usuario como phpmyadmin donde el modo de actualización seguro está deshabilitado de forma predeterminada. En ese caso, la operación de actualización se realizará en función del permiso del usuario. Si el usuario da permiso, entonces el contact_no campo de todos los registros del clientes La tabla se actualizará; De lo contrario, no se hará nada.

Ejecutar la consulta de eliminación:

Ejecute el comando Eliminar sin la cláusula WHERE para verificar el modo de actualización segura está funcionando o no para la operación Eliminar. Si el modo de actualización seguro está habilitado, el error 1175 se generará para la consulta de eliminación como la consulta de actualización.

Eliminar de los clientes;

La siguiente salida muestra un error generado para la consulta de eliminación sin cláusula WHERE, y no se ha realizado ninguna operación de eliminación.

Suponga que la consulta de eliminación anterior se ejecutará a partir de cualquier interfaz gráfica de usuario como phpmyadmin donde el modo de actualización segura está deshabilitado de forma predeterminada. En ese caso, la operación de eliminación se realizará en función del permiso del usuario, como la consulta de actualización. Si el usuario da permiso, entonces todos los registros del clientes La tabla será eliminada; De lo contrario, no se hará nada.

Ejecutar el comando actualizar y eliminar después de deshabilitar el modo de actualización segura:

Ejecute los siguientes comandos para deshabilitar el modo de actualización segura y verifique el valor del sql_safe_updates variable.

Establecer sql_safe_updates = 0;
Mostrar variables como "SQL_SAFE_UPDATES";

La siguiente salida muestra que el modo de actualización seguro está deshabilitado ahora.

Al igual que el comando de actualización anterior, ejecute el siguiente comando de actualización sin la cláusula Where para verificar la operación de actualización funciona o no después de deshabilitar el modo de actualización segura.

Actualizar a los clientes la dirección establecida = 'dhaka';

La siguiente salida muestra que la operación de actualización se ha completado sin ningún error, y cuatro filas del clientes La tabla ha sido afectada.

Ejecute la siguiente consulta de selección para verificar el contenido actual del clientes mesa.

Seleccionar * de los clientes;

La siguiente salida muestra que el valor de la cadena ha actualizado todos los valores de campo de dirección ','Dhaka '.

Al igual que el comando Eliminar anterior, ejecute el siguiente comando Eliminar sin la cláusula WHERE para verificar la operación Eliminar funciona o no después de deshabilitar el modo de actualización segura.

Eliminar de los clientes;

La siguiente salida muestra que la operación de eliminación se ha completado sin error.

Ejecute la siguiente consulta de selección para verificar el contenido actual del clientes mesa.

Seleccionar * de los clientes;

La siguiente salida muestra que todos los registros del clientes la mesa ha sido eliminada.

Conclusión:

El modo de actualización segura de MySQL es una característica esencial para evitar actualizaciones no deseadas o eliminar operaciones por error. La forma de habilitar y deshabilitar este modo estableciendo la variable requerida se ha mostrado en este tutorial. Cómo actualizar y eliminar las operaciones sin la cláusula WHERE Funcionan en función del modo de actualización segura también se han mostrado aquí utilizando una tabla.