MySQL code d'erreur: 1175 pendant la mise à JOUR de MySQL Workbench
Je suis en train de mettre à jour la colonne visited
pour lui donner la valeur 1. J'utilise MySQL workbench, et je suis en train d'écrire l'instruction dans l'éditeur SQL à partir de l'intérieur de l'atelier. Je suis en train d'écrire la commande suivante:
UPDATE tablename SET columnname=1;
Il me donne l'erreur suivante:
Vous utilisez safe mode de mise à jour et vous avez essayé de mettre à jour une table sans
un cas qui utilise une colonne de CLÉ Pour désactiver le mode sans échec, d'activer /désactiver l'option
....
J'ai suivi les instructions, et j'ai décoché la safe update
option à partir de la Edit
menu puis Preferences
puis SQL Editor
. Le même message d'erreur apparaît toujours & je ne suis pas en mesure de mettre à jour cette valeur. S'il vous plaît, dites-moi quel est le problème?
- Savez-vous que cela va mettre à jour toutes les lignes de votre table, où visité = 0 pour devenir visité = 1? Est-ce que vous souhaitez?
- Byers : Oui.
- En désactivant l'option "Safe" Mises à jour, suivez l'étape ci-dessous: la Requête --> Reconnecter au Serveur . Maintenant exécuter votre requête
- Vous devez vous reconnecter au Serveur MySQL (redémarrer la connexion MySQL) avant ce changement prend effet.
Vous devez vous connecter pour publier un commentaire.
Il ressemble à votre session de MySql a la coffre-option de mises à jour ensemble. Cela signifie que vous ne pouvez pas mettre à jour ou supprimer des enregistrements sans spécifier une clé (ex.
primary key
) dans la clause where.Essayer:
Ou vous pouvez modifier votre requête afin de respecter la règle (utiliser
primary key
danswhere clause
).SET SQL_SAFE_UPDATES = 1
lorsque vous avez terminé, car il est un bon dispositif de sécurité.Suivre les étapes suivantes avant d'exécuter la commande de mise à JOUR:
Dans MySQL Workbench
Edit
-->Preferences
"SQL Editor"
onglet etuncheck
Sûr "Mises à jour"check box
Query
-->Reconnect to Server
//déconnexion, puis vous connecter enp.s., Pas besoin de redémarrer le démon MySQL!
"Sql Editor"
au lieu de"Sql Queries"
et puis, il y a une case à cocher au bas de"Safe Updates"
Tout ce qui est nécessaire est: Démarrer une nouvelle requête et de l'exécution:
Alors: Exécuter la requête que vous essayez d'exécuter ce n'était pas précédemment de travail.
Pas besoin de régler SQL_SAFE_UPDATES à 0, je voudrais vraiment vous décourager de le faire de cette façon. SAFE_UPDATES est par défaut sur pour une RAISON. Vous pouvez conduire une voiture sans ceinture de sécurité et d'autres choses si vous savez ce que je veux dire 😉
Seulement ajouter dans la clause where d'une CLÉ-valeur qui correspond tout comme une clé primaire comparant à 0, donc au lieu d'écrire:
Maintenant, vous pouvez être assuré que chaque enregistrement est (TOUJOURS) mis à jour comme prévu.
WHERE id > 0
comme un tour le long de cette ligne.Code D'Erreur: 1175. Vous êtes à l'aide de coffre-fort mode de mise à jour et vous avez essayé de mettre à jour une table sans OÙ qui utilise une colonne de CLÉ Pour désactiver le mode sans échec, d'activer /désactiver l'option dans les Préférences -> Éditeur SQL et rebranchez-le.
DÉSACTIVER le "Safe Mode de mise à Jour" temporaire
DÉSACTIVER le "Safe Mode de mise à Jour" jamais
Mysql workbench 8.0:
Ancienne version:
OU
Aller à
Edit --> Preferences
Cliquez sur
SQL Queries
onglet et décochezSafe Updates
case à cocherQuery --> Reconnect to Server
Maintenant exécuter votre requête sql
Si vous êtes en mode sans échec, vous devez fournir des pièces d'identité dans la clause where. Donc quelque chose comme cela devrait fonctionner!
J'ai trouvé la réponse. Le problème est que j'ai à faire précéder le nom de la table avec le nom de schéma. j'.e, la commande doit être:
Merci à tous.
qms-active-db
.gh_table création de signet='1660_207100000001000'Dans la base de données MySQL Workbech version 6.2 ne sont pas sorties de la Préférence
SQLQueries
options.Dans ce cas, il est possible d'utiliser:
SET SQL_SAFE_UPDATES=0;
La solution la plus simple est de définir la limite de ligne et de les exécuter. Ceci est fait pour des raisons de sécurité.
Sur WorkBench je l'ai résolu En désactivant le safe mode de mise à jour:
-Edit -> Préférences -> Éditeur Sql désactivez la case à cocher mise à jour de Sécurité.
Depuis que la question a été répondue, et n'a rien à voir avec les mises à jour de sécurité, ce qui pourrait être le mauvais endroit; je vais poster juste pour ajouter de l'information.
J'ai essayé d'être un bon citoyen et modifié la requête à utiliser une table temporaire des id qui serait mise à jour:
Échec. Modifié la mise à jour:
Qui ont travaillé. Bien golly -- si je suis toujours en ajoutant de la tonalité <> 0 pour obtenir autour de la sécurité vérification de mise à jour, ou même SQL_SAFE_UPDATE=0, alors j'ai perdu le "check" sur ma requête. Je pourrais tout aussi bien désactiver l'option de façon permanente. Je suppose qu'il fait de la suppression et de mise à jour d'un processus en deux étapes au lieu d'une.. mais si vous tapez assez vite et arrêter de penser au sujet de la clé spéciale, mais plutôt que juste une nuisance..
Vrai, c'est inutile pour la plupart des exemples. Mais enfin, je suis venu à l'instruction suivante et il fonctionne très bien:
C'est pour Mac, mais il doit en être de même pour d'autres OS à l'exception de l'emplacement de l'préférences.
L'erreur que nous obtenons quand nous essayons un dangereux
DELETE
opérationSur la nouvelle fenêtre, décochez l'option
Safe updates
Puis fermez et ouvrez de nouveau la connexion. Pas besoin de redémarrer le service.
Maintenant, nous allons essayer de le
DELETE
à nouveau avec des résultats positifs.Donc, ce est tout au sujet de ce coffre mises à jour? C'est pas une mauvaise chose. C'est ce que MySql est dit à ce sujet.
À l'aide de la
--safe-updates
OptionIl est sûr pour activer cette option lorsque vous occuper de la production de la base de données. Sinon, vous devez être très prudent de ne pas effacer accidentellement des données importantes.