delete - error 1175 mysql solucion




Código de error de MySQL: 1175 durante la ACTUALIZACIÓN en MySQL Workbench (10)

Estoy tratando de actualizar la columna visited para darle el valor 1. Utilizo el banco de trabajo MySQL y escribo la declaración en el editor de SQL desde el banco de trabajo. Estoy escribiendo el siguiente comando:

UPDATE tablename SET columnname=1;

Me da el siguiente error:

Está utilizando el modo de actualización segura e intentó actualizar una tabla sin un DÓNDE que use una columna CLAVE Para deshabilitar el modo seguro, active la opción ...

Seguí las instrucciones, y desactivé la opción de safe update en el menú Edit , luego Preferences luego en el SQL Editor . El mismo error sigue apareciendo y no puedo actualizar este valor. Por favor, dime que está mal?


  1. Preferencias ...
  2. "Actualizaciones seguras" ...
  3. Reiniciar servidor


Código de error: 1175. Está utilizando el modo de actualización segura e intentó actualizar una tabla sin un DÓNDE que use una columna CLAVE. Para deshabilitar el modo seguro, alterne la opción en Preferencias -> Editor de SQL y vuelva a conectarse.

Desactivar el "Modo de actualización segura" temporal

SET SQL_SAFE_UPDATES = 0;
UPDATE options SET title= 'kiemvieclam24h' WHERE url = 'http://kiemvieclam24h.net';
SET SQL_SAFE_UPDATES = 1;

Desactive el "Modo de actualización segura" para siempre

Mysql workbench 8.0:

MySQL Workbench => [ Edit ] => [ Preferences ] -> [ SQL Editor ] -> Uncheck "Safe Updates"

La versión anterior puede:

MySQL Workbench => [Edit] => [Preferences] => [SQL Queries]

En la versión 6.2 de MySQL Workbech no se SQLQueries opciones de Preferencia de SQLQueries .

En este caso es posible su uso: SET SQL_SAFE_UPDATES=0;


Encontré la respuesta. El problema fue que tengo que preceder al nombre de la tabla con el nombre del esquema. Es decir, el comando debe ser:

UPDATE schemaname.tablename SET columnname=1;

Gracias a todos.


Esto es para Mac, pero debe ser igual para otros sistemas operativos, excepto la ubicación de las preferencias.

El error que obtenemos cuando intentamos una operación DELETE insegura

En la nueva ventana, desmarque la opción Safe updates

Luego cierre y vuelva a abrir la conexión. No es necesario reiniciar el servicio.

Ahora vamos a probar el DELETE nuevo con resultados exitosos.

Entonces, ¿qué es todo acerca de estas actualizaciones seguras? No es una cosa mala. Esto es lo que dice MySql al respecto.

Usando la opción --safe-updates

Para los principiantes, una opción de inicio útil es --safe-updates (o --i-am-a-dummy , que tiene el mismo efecto). Es útil para los casos en los que puede haber emitido una declaración DELETE FROM tbl_name pero se ha olvidado de la cláusula WHERE . Normalmente, tal declaración elimina todas las filas de la tabla. Con --safe-updates , puede eliminar filas solo especificando los valores clave que las identifican. Esto ayuda a prevenir accidentes.

Cuando usa la opción --safe-updates , mysql emite la siguiente declaración cuando se conecta al servidor MySQL:

SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;

Es seguro activar esta opción mientras trata con la base de datos de producción. De lo contrario, debes tener mucho cuidado de no borrar accidentalmente datos importantes.


La solución más simple es definir el límite de la fila y ejecutar. Esto se hace por razones de seguridad.


Si está en un modo seguro, debe proporcionar id en la cláusula where. Así que algo como esto debería funcionar!

UPDATE tablename SET columnname=1 where id>0

Siga los siguientes pasos antes de ejecutar el comando ACTUALIZAR: En MySQL Workbench

  1. Ir a Edit -> Preferences
  2. Haga clic en la pestaña "SQL Editor" y uncheck check box "Actualizaciones seguras"
  3. Query -> Reconnect to Server // cerrar sesión y luego iniciar sesión
  4. Ahora ejecuta tu consulta SQL

ps, no es necesario reiniciar el demonio de MySQL!


No es necesario establecer SQL_SAFE_UPDATES en 0 , realmente lo desalentaría a hacerlo de esa manera. Simplemente agregue en la cláusula WHERE un valor KEY que coincida con todo, como una clave primaria comparada con 0, así que en lugar de escribir:

UPDATE customers SET countryCode = 'USA'
    WHERE country = 'USA';               -- which gives the error, you just write:

UPDATE customers SET countryCode = 'USA'
    WHERE (country = 'USA' AND customerNumber <> 0); -- Because customerNumber is a primary key you got no error 1175 any more.

Ahora puede estar seguro de que cada registro se actualiza como espera.


SET SQL_SAFE_UPDATES=0;

O

Ir a Edit --> Preferences

Haga clic en la pestaña SQL Queries y desactive la casilla de verificación Safe Updates

Query --> Reconnect to Server

Ahora ejecuta tu consulta sql