Utilisation du mode de mise à jour MySQL SAFE

Utilisation du mode de mise à jour MySQL SAFE
Les données de table de la base de données MySQL peuvent nécessiter de mettre à jour ou de supprimer à tout moment en fonction de l'exigence. Si la requête de mise à jour ou de suppression s'exécute sans utiliser la clause WHERE, alors tous les enregistrements de table seront mis à jour ou supprimés accidentellement. Si le mode de mise à jour sûr est activé, le code d'erreur MySQL 1175 sera généré si la requête de mise à jour ou de suppression est exécutée sans utiliser la clause WHERE. Mais parfois, cela nécessite de supprimer tous les enregistrements de table ou de mettre à jour toutes les valeurs d'une colonne particulière d'une table. Ce problème peut être résolu en désactivant le mode de mise à jour sûr ou en exécutant la requête avec une clause qui correspondra à toutes les lignes de table. La manière d'activer ou de désactiver le mode de mise à jour sûr pour empêcher la suppression ou la mise à jour accidentelle a été affichée dans ce tutoriel.

Conditions préalables:

Vous devez créer une table de base de données avec les données dans une base de données MySQL pour vérifier l'utilisation du mode de mise à jour sûr dans MySQL.

Ouvrez le terminal et connectez-vous avec le serveur MySQL en exécutant la commande suivante.

$ sudo mysql -u racine

Exécutez la commande suivante pour créer une base de données nommée test_db.

Créer une base de données test_db;

Exécutez la commande suivante pour sélectionner la base de données.

Utilisez test_db;

Exécutez la requête suivante pour créer un tableau nommé clients avec cinq champs.

Clients créatifs (
id intnot clés primaire null,
nom varchar (30) pas null,
Email Varchar (50),
adresse du texte,
contact_no varchar (15));

Exécutez la requête d'insertion suivante pour insérer quatre enregistrements dans le clients tableau.

Insérer dans les valeurs «Clients» («id», «nom», «e-mail», «adresse», «contact_no»)
('4001', 'Laboni Sarkar', 'Laboni @ gmail.com ', '34, dhanmondi 9 / a, dhaka.',' 01844767234 '),
('4002', 'Tahsin Ahmed', 'tahsin @ gmail.com ',' 123/1, Jigatola, Dhaka.',' 015993487812 '),
('4003', 'Hasina Pervin', 'Hasina @ gmail.com ',' 280, Shantibagh, Dhaka.', NUL),
('4004', 'Mehrab Ali', 'Ali @ Yahoo.com ', '78, paltan, dhaka…', '01727863459');

Vérification de la valeur actuelle du mode de mise à jour sûr:

Le sql_safe_updates La variable est utilisée pour activer ou désactiver le mode de mise à jour sûr de MySQL. Le mode de mise à jour sûr est désactivé par défaut. Exécutez la commande suivante à partir de l'invite MySQL pour vérifier la valeur actuelle du sql_safe_updates variable.

Afficher des variables comme "SQL_SAFE_UPDATES";

La sortie suivante montre que le mode de mise à jour sûr est désactivé.

Exécutez la commande de mise à jour et delete après l'activation du mode de mise à jour sécurisé:

Exécutez les commandes suivantes pour activer le mode de mise à jour sûr et vérifier la valeur du sql_safe_updates variable.

Set sql_safe_updates = 1;
Afficher des variables comme "SQL_SAFE_UPDATES";

La sortie suivante montre que le mode de mise à jour sûr est activé maintenant.

Exécuter la requête de mise à jour:

Exécutez la commande de mise à jour sans la clause où vérifier le mode de mise à jour sûr fonctionne ou non pour l'opération de mise à jour. Si le mode de mise à jour sûr est activé, l'erreur 1175 sera générée pour la requête de mise à jour.

Mettre à jour les clients définir Contact_NO = '02 -458934679 ';

La sortie suivante montre une erreur générée pour la requête de mise à jour sans clause, et aucune opération de mise à jour n'a été faite.

Supposons que la requête de mise à jour ci-dessus sera exécutée à partir de toute interface utilisateur graphique comme PhpMyAdmin où le mode de mise à jour sécurisé est désactivé par défaut. Dans ce cas, l'opération de mise à jour sera effectuée en fonction de l'autorisation de l'utilisateur. Si l'utilisateur donne la permission, alors le contact_no champ de tous les enregistrements du clients La table sera mise à jour; Sinon, rien ne sera fait.

Exécuter la requête de suppression:

Exécutez la commande Supprimer sans où la clause pour vérifier le mode de mise à jour sûr fonctionne ou non pour l'opération de suppression. Si le mode de mise à jour sûr est activé, l'erreur 1175 sera générée pour la requête de suppression comme la requête de mise à jour.

Supprimer des clients;

La sortie suivante montre une erreur générée pour la requête de suppression sans clause, et aucune opération de suppression n'a été effectuée.

Supposons que la requête de suppression ci-dessus sera exécutée à partir de toute interface utilisateur graphique comme phpmyadmin où le mode de mise à jour sécurisé est désactivé par défaut. Dans ce cas, l'opération de suppression sera effectuée en fonction de l'autorisation de l'utilisateur, comme la requête de mise à jour. Si l'utilisateur donne la permission, alors tous les enregistrements du clients La table sera supprimée; Sinon, rien ne sera fait.

Exécutez la commande de mise à jour et delèvement après avoir désactivé le mode de mise à jour sûr:

Exécutez les commandes suivantes pour désactiver le mode de mise à jour sûr et vérifier la valeur du sql_safe_updates variable.

Set sql_safe_updates = 0;
Afficher des variables comme "SQL_SAFE_UPDATES";

La sortie suivante montre que le mode de mise à jour sûr est désactivé maintenant.

Comme la commande de mise à jour précédente, exécutez la commande de mise à jour suivante sans clause pour vérifier l'opération de mise à jour fonctionne ou non après avoir désactivé le mode de mise à jour sûr.

Mettre à jour les clients set adress = 'dhaka';

La sortie suivante montre que l'opération de mise à jour est terminée sans aucune erreur et quatre lignes de la clients la table a été affectée.

Exécutez la requête de sélection suivante pour vérifier le contenu actuel du clients tableau.

Sélectionner * parmi les clients;

La sortie suivante montre que la valeur de la chaîne a mis à jour toutes les valeurs du champ d'adresse, 'Dhaka '.

Comme la commande de suppression précédente, exécutez la commande de suppression suivante sans clause pour vérifier l'opération de suppression fonctionne ou non après avoir désactivé le mode de mise à jour sûr.

Supprimer des clients;

La sortie suivante montre que l'opération de suppression est terminée sans erreur.

Exécutez la requête de sélection suivante pour vérifier le contenu actuel du clients tableau.

Sélectionner * parmi les clients;

La sortie suivante montre que tous les enregistrements du clients La table a été supprimée.

Conclusion:

Le mode de mise à jour sûr de MySQL est une caractéristique essentielle pour empêcher les mises à jour indésirables ou supprimer les opérations par erreur. La manière d'activer et de désactiver ce mode en définissant la variable requise a été affichée dans ce tutoriel. Comment les opérations de mise à jour et de suppression sans la clause WHERAL.