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


Estoy tratando de actualizar la columna visited para darle el valor 1. Utilizo MySQL workbench, y estoy escribiendo la declaración en el editor SQL desde dentro de workbench. 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 a DONDE utiliza una columna CLAVE Para desactivar el modo seguro, alternar la opción ....

Seguí las instrucciones, y desmarcé el safe update opción del menú Edit luego Preferences luego SQL Editor. El mismo error sigue apareciendo y no puedo actualizar este valor. Por favor, dime qué pasa.

Author: Leigh, 2012-07-12

15 answers

Parece que su sesión de MySQL tiene la opción safe-updates establecida. Esto significa que no puede actualizar o eliminar registros sin especificar una clave (ej. primary key) en la cláusula where.

Intenta:

SET SQL_SAFE_UPDATES = 0;

O puede modificar su consulta para seguir la regla (use primary key en where clause).

 1142
Author: Habibillah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-25 19:10:51

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

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

P. S., No hay necesidad de reiniciar el demonio MySQL!

 351
Author: Ripon Al Wasim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-05 09:49:51
SET SQL_SAFE_UPDATES=0;
UPDATE tablename SET columnname=1;
SET SQL_SAFE_UPDATES=1;
 109
Author: user2531028,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-05 06:27:14

Todo lo que se necesita es: Iniciar una nueva consulta y ejecutar:

SET SQL_SAFE_UPDATES = 0;

Luego: Ejecute la consulta que estaba tratando de ejecutar que no estaba funcionando previamente.

 94
Author: Quagmire12,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-08 06:37:46

No es necesario establecer SQL_SAFE_UPDATES en 0, realmente lo desalentaría de hacerlo de esa manera. Simplemente agregue en la cláusula WHERE un valor CLAVE que coincida con todo como una clave primaria en comparación 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.

 43
Author: Rudy De Volder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-04 08:23:26
  1. Preferencias...
  2. "Actualizaciones seguras"...
  3. Reiniciar el servidor

Preferencia...

Actualizaciones Seguras Reiniciar el servidor

 38
Author: andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-19 17:37:45
SET SQL_SAFE_UPDATES=0;

O

Ir a Edit --> Preferences

Haga clic SQL Queries tab y desmarcar Safe Updates casilla de verificación

Query --> Reconnect to Server

Ahora ejecute su consulta sql

 33
Author: Balu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-04 11:16:38

Si está en 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
 23
Author: Tomislav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-11 09:32:40

Encontré la respuesta. El problema era que tenía que preceder el nombre de la tabla con el nombre del esquema. es decir, el comando debe ser:

UPDATE schemaname.tablename SET columnname=1;

Gracias a todos.

 20
Author: Jury A,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-25 05:49:02

En la versión 6.2 de MySQL Workbech no salga de las opciones PreferenceSQLQueries.

En este caso es posible utilizar: SET SQL_SAFE_UPDATES=0;
 13
Author: ferdiado,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-10 19:55:49

Código de error: 1175. Está utilizando el modo de actualización segura y ha intentado actualizar una tabla sin un DONDE que utiliza una columna CLAVE Para desactivar el modo seguro, alternar la opción en Preferencias - > Editor SQL y volver a conectar.

Desactivar" 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;

Desactivar "Modo de actualización segura" para siempre

Mysql workbench 8.0:

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

introduzca la descripción de la imagen aquí Versión antigua puede:

MySQL Workbench => [Edit] => [Preferences] => [SQL Queries]
 10
Author: TinhNQ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-31 09:35:18

La solución más sencilla es definir el límite de fila y ejecutarlo. Esto se hace por motivos de seguridad.

 8
Author: Ruwantha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-30 08:55:34

Dado que la pregunta fue respondida y no tenía nada que ver con actualizaciones seguras, este podría ser el lugar equivocado; publicaré solo para agregar información.

Traté de ser un buen ciudadano y modificación de la consulta para utilizar una tabla temporal de los identificadores que se actualiza:

create temporary table ids ( id int )
    select id from prime_table where condition = true;
update prime_table set field1 = '' where id in (select id from ids);

Fracaso. Se ha modificado la actualización a:

update prime_table set field 1 = '' where id <> 0 and id in (select id from ids);

Eso funcionó. Bueno, caramba if si siempre estoy agregando where key 0 para evitar la comprobación de actualización segura,o incluso establecer SQL_SAFE_UPDATE = 0, entonces he perdido el' check ' en mi consulta. También podría desactivar la opción permanentemente. Supongo que hace que la eliminación y actualización sea un proceso de dos pasos en lugar de uno.. pero si escribe lo suficientemente rápido y deja de pensar que la clave es especial, sino más bien como una molestia..

 3
Author: Gerard ONeill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-20 15:04:35

Cierto, esto no tiene sentido para la mayoría de los ejemplos. Pero finalmente, llegué a la siguiente declaración y funciona bien:

update tablename  set column1 = '' where tablename .id = (select id from tablename2 where tablename2.column2 = 'xyz');
 3
Author: Sonic-Mayhem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-10 11:20:59

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

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

Haga clic en preferencias cuando reciba este error

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

Desmarque las actualizaciones seguras

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

Ahora vamos a probar el DELETE de nuevo con éxito resultado.

introduzca la descripción de la imagen aquí

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

Usando la opción --safe-updates

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

Cuando se utiliza la opción --safe-updates, mysql emite lo siguiente sentencia 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 se ocupa de la base de datos de producción. De lo contrario, debe tener mucho cuidado de no eliminar accidentalmente datos importantes.

 0
Author: Krishnadas PC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-05 07:22:01