Estoy tratando de actualizar la columna visited
para darle el valor 1. Uso MySQL Workbench, y estoy escribiendo la declaración en el editor de SQL desde dentro del 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 un DÓNDE que usa una columna CLAVE Para deshabilitar el modo seguro, active la opción ...
He seguido las instrucciones, y que yo no se la safe update
opción en el Edit
menú y luego Preferences
a continuación SQL Editor
. Sigue apareciendo el mismo error y no puedo actualizar este valor. Por favor, dime ¿qué pasa?
mysql
sql-update
mysql-workbench
Jurado A
fuente
fuente
Respuestas:
Parece que su sesión MySql tiene configurada la opción de actualizaciones seguras . Esto significa que no puede actualizar o eliminar registros sin especificar una clave (ej.
primary key
) En la cláusula where.Tratar:
O puede modificar su consulta para seguir la regla (usar
primary key
enwhere clause
).fuente
SET SQL_SAFE_UPDATES = 1
cuando haya terminado, ya que es una característica de seguridad que vale la pena.Siga los siguientes pasos antes de ejecutar el comando ACTUALIZAR: En MySQL Workbench
Edit
->Preferences
"SQL Editor"
pestaña yuncheck
"Actualizaciones seguras"check box
Query
->Reconnect to Server
// cerrar sesión y luego iniciar sesiónps, no es necesario reiniciar el demonio MySQL!
fuente
"Sql Editor"
lugar de"Sql Queries"
y luego hay una casilla de verificación en la parte inferior para"Safe Updates"
fuente
No es necesario establecer SQL_SAFE_UPDATES en 0 , realmente lo desaliento para que lo haga de esa manera. SAFE_UPDATES está activado por defecto por un MOTIVO. Puede conducir un automóvil sin cinturones de seguridad y otras cosas si sabe a lo que me refiero;) Solo agregue en la cláusula WHERE un valor KEY que coincida con todo, como una clave principal en comparación con 0, por lo que en lugar de escribir:
Ahora puede estar seguro de que cada registro se actualiza (SIEMPRE) como espera.
fuente
WHERE id > 0
como un truco en esta línea.Todo lo que se necesita es: iniciar una nueva consulta y ejecutar:
Luego: ejecute la consulta que intentaba ejecutar que no funcionaba anteriormente.
fuente
SET SQL_SAFE_UPDATES = 0;
su código SQL aquí
SET SQL_SAFE_UPDATES = 1;
fuente
Código de error: 1175. Está utilizando el modo de actualización segura e intentó actualizar una tabla sin un DÓNDE que usa una columna CLAVE Para desactivar el modo seguro, active la opción Preferencias -> Editor SQL y vuelva a conectarse.
Desactiva el "Modo de actualización segura" temporalmente
Desactiva el "Modo de actualización segura" para siempre
Mysql workbench 8.0:
La versión anterior puede:
fuente
fuente
O
Ir
Edit --> Preferences
Haga clic en la
SQL Queries
pestaña y desmarque la casilla deSafe Updates
verificaciónQuery --> Reconnect to Server
Ahora ejecute su consulta sql
fuente
Si está en modo seguro, debe proporcionar la identificación en la cláusula where. ¡Entonces algo como esto debería funcionar!
fuente
En WorkBench lo resolví desactivando el modo de actualización segura:
-Editar -> Preferencias -> Editor SQL y luego desmarcar Actualización segura.
fuente
Encontré la respuesta. El problema era que tenía que preceder al nombre de la tabla con el nombre del esquema. es decir, el comando debe ser:
Gracias a todos.
fuente
qms-active-db
.gh_table set bookmark = '1660_207100000001000'En MySQL Workbech versión 6.2, no salga de la preferencia
En este caso es posible usar:SQLQueries
opciones de .SET SQL_SAFE_UPDATES=0;
fuente
La solución más simple es definir el límite de fila y ejecutar. Esto se hace por motivos de seguridad.
fuente
Como 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 modifiqué la consulta para usar una tabla temporal de identificadores que se actualizarían:
Fracaso. Modificó la actualización a:
Eso funciono. Bueno, si siempre estoy agregando donde la tecla <> 0 para evitar la verificación de actualización segura, o incluso establezco SQL_SAFE_UPDATE = 0, entonces he perdido el 'cheque' en mi consulta. También podría desactivar la opción de forma permanente. Supongo que elimina y actualiza un proceso de dos pasos en lugar de uno ... pero si escribe lo suficientemente rápido y deja de pensar en que la clave es especial, sino más bien como una molestia ...
fuente
Es cierto que esto no tiene sentido para la mayoría de los ejemplos. Pero finalmente, llegué a la siguiente declaración y funciona bien:
fuente
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
DELETE
operación inseguraEn la nueva ventana, desmarca la opción
Safe updates
Luego cierre y vuelva a abrir la conexión. No es necesario reiniciar el servicio.
Ahora vamos a intentarlo
DELETE
nuevamente con resultados exitosos.Entonces, ¿de qué se trata esta actualización segura? No es una cosa malvada. Esto es lo que dice MySql al respecto.
Usando la
--safe-updates
OpciónEs seguro activar esta opción mientras maneja la base de datos de producción. De lo contrario, debe tener mucho cuidado de no eliminar accidentalmente datos importantes.
fuente