Question Code d'erreur MySQL: 1175 lors de la mise à jour dans MySQL Workbench


J'essaie de mettre à jour la colonne visited pour lui donner la valeur 1. J'utilise MySQL workbench, et j'écris l'instruction dans l'éditeur SQL depuis l'intérieur du workbench. J'écris la commande suivante:

UPDATE tablename SET columnname=1;

Cela me donne l'erreur suivante:

Vous utilisez le mode de mise à jour sécurisé et vous avez essayé de mettre à jour une table sans   a WHERE qui utilise une colonne KEY Pour désactiver le mode sans échec, basculez l'option   ....

J'ai suivi les instructions, et j'ai décoché la safe update option du Edit menu alors Preferences puis SQL Editor. La même erreur apparaît toujours et je ne suis pas en mesure de mettre à jour cette valeur. S'il vous plaît, dites-moi ce qui ne va pas?


517
2017-07-12 08:44


origine


Réponses:


Il semble que votre session MySql a le option de mises à jour sécurisées ensemble. Cela signifie que vous ne pouvez pas mettre à jour ou supprimer des enregistrements sans spécifier de clé (ex. primary key) dans la clause where.

Essayer:

SET SQL_SAFE_UPDATES = 0;

Ou vous pouvez modifier votre requête pour suivre la règle (utiliser primary key dans where clause).


1091
2017-07-12 08:59



Suivez les étapes suivantes avant d'exécuter la commande UPDATE: Dans MySQL Workbench

  1. Aller à Edit -> Preferences
  2. Cliquez sur "SQL Editor" onglet et uncheck "Mises à jour sécurisées" check box
  3. Query -> Reconnect to Server  // déconnexion, puis connexion
  4. Maintenant, exécutez votre requête SQL

p.s., pas besoin de redémarrer le démon MySQL!


342
2018-01-09 09:37



SET SQL_SAFE_UPDATES=0;
UPDATE tablename SET columnname=1;
SET SQL_SAFE_UPDATES=1;

106
2017-07-26 14:42



Tout ce qui est nécessaire est: Démarrer une nouvelle requête et lancer:

SET SQL_SAFE_UPDATES = 0;

Ensuite: exécutez la requête que vous tentiez d'exécuter qui ne fonctionnait pas auparavant.


93
2017-11-17 13:20



Pas besoin de définir SQL_SAFE_UPDATES à 0, Je le découragerais vraiment de le faire de cette façon. Ajoutez simplement dans la clause WHERE une valeur KEY qui correspond à tout comme une clé primaire comparée à 0, donc au lieu d'écrire:

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.

Vous pouvez maintenant être assuré que chaque enregistrement est mis à jour comme vous le souhaitez.


39
2018-02-04 07:46



  1. Préférences ...
  2. "Mises à jour sécurisées" ...
  3. Redémarrer le serveur

Preferences...

Safe Updates Restart server


37
2018-02-19 17:37



SET SQL_SAFE_UPDATES=0;

OU

Aller à  Edit --> Preferences

Cliquez sur  SQL Queries onglet et décocher  Safe Updates case à cocher

Query --> Reconnect to Server

Maintenant, exécutez votre requête SQL


33
2017-12-02 13:32



Si vous êtes en mode sans échec, vous devez fournir la clause ID dans where. Donc, quelque chose comme ça devrait fonctionner!

UPDATE tablename SET columnname=1 where id>0

22
2017-09-11 09:07



J'ai trouvé la réponse. Le problème était que je devais précéder le nom de la table avec le nom du schéma. c'est-à-dire que la commande devrait être:

UPDATE schemaname.tablename SET columnname=1;

Merci a tous.


19
2017-07-12 08:52



Dans MySQL Workbech version 6.2 ne quitte pas la préférenceSQLQueriesoptions

Dans ce cas, il est possible d'utiliser: SET SQL_SAFE_UPDATES=0;

13
2017-09-10 18:46