Verwendung des MySQL Safe Update -Modus

Verwendung des MySQL Safe Update -Modus
Tabellendaten der MySQL -Datenbank müssen möglicherweise jederzeit basierend auf der Anforderung aktualisiert oder löschen. Wenn die Aktualisierungs- oder Löschabfrage ohne Verwendung der WHERE -Klausel ausgeführt wird, werden alle Tabellendatensätze versehentlich aktualisiert oder gelöscht. Wenn der Safe -Update -Modus aktiviert ist, wird der MySQL -Fehlercode 1175 generiert, wenn die Aktualisierungs- oder Löschabfrage ohne Verwendung der WO -Klausel ausgeführt wird. Aber manchmal erfordert es das Löschen aller Tabellenaufzeichnungen oder das Aktualisieren aller Werte einer bestimmten Spalte einer Tabelle. Dieses Problem kann gelöst werden, indem der Safe -Update -Modus deaktiviert oder die Abfrage mit einer Klausel ausgeführt wird, die allen Tabellenzeilen übereinstimmt. Die Möglichkeit, einen sicheren Update -Modus zu aktivieren oder zu deaktivieren, um ein versehentliches Löschen oder Update zu verhindern, wurde in diesem Tutorial gezeigt.

Voraussetzungen:

Sie müssen eine Datenbanktabelle mit den Daten in einer MySQL -Datenbank erstellen, um die Verwendung des sicheren Update -Modus in MySQL zu überprüfen.

Öffnen Sie das Terminal und verbinden Sie sich mit dem MySQL -Server, indem Sie den folgenden Befehl ausführen.

$ sudo mysql -u root

Führen Sie den folgenden Befehl aus, um eine Datenbank mit dem Namen zu erstellen test_db.

Datenbank erstellen test_db;

Führen Sie den folgenden Befehl aus, um die Datenbank auszuwählen.

Verwenden Sie test_db;

Führen Sie die folgende Anfrage aus, um eine Tabelle mit dem Namen zu erstellen Kunden mit fünf Feldern.

Schöpferische Kunden (
ID Intnot Null Primärschlüssel,
Nennen Sie Varchar (30) nicht null,
E -Mail Varchar (50),
Adresstext,
contact_no varchar (15));

Führen Sie die folgende Abfrage aus, um vier Datensätze in die Einfügung in die Kunden Tisch.

Einfügen in "Kunden" ("ID", "Name", "E -Mail", "Adresse", "contact_no") Werte
('4001', 'Laboni Sarkar', '[email protected] ', '34, Dhanmondi 9/A, Dhaka.',' 01844767234 '),
('4002', 'Tahsin Ahmed', '[email protected] ',' 123/1, Jigatola, Dhaka.',' 015993487812 '),
('4003', 'Hasina Pervin', '[email protected] ',' 280, Shantibagh, Dhaka.', NULL),
('4004', 'Mehrab Ali', '[email protected] ', '78, paltan, dhaka…', '01727863459');

Überprüfen Sie den aktuellen Wert des sicheren Aktualisierungsmodus:

Der SQL_SAFE_UPDATES Variable wird verwendet, um den sicheren Update -Modus von MySQL zu aktivieren oder zu deaktivieren. Der sichere Update -Modus ist standardmäßig deaktiviert. Führen Sie den folgenden Befehl aus der MySQL -Eingabeaufforderung aus, um den aktuellen Wert der zu überprüfen SQL_SAFE_UPDATES Variable.

Variablen wie "SQL_SAFE_UPDATES" anzeigen;

Die folgende Ausgabe zeigt, dass der sichere Aktualisierungsmodus deaktiviert ist.

Führen Sie den Befehl Update und löschen aus, nachdem Sie den sicheren Update -Modus aktiviert haben:

Führen Sie die folgenden Befehle aus, um den sicheren Aktualisierungsmodus zu aktivieren und den Wert des SQL_SAFE_UPDATES Variable.

Setzen Sie SQL_SAFE_UPDATES = 1;
Variablen wie "SQL_SAFE_UPDATES" anzeigen;

Die folgende Ausgabe zeigt, dass der sichere Aktualisierungsmodus jetzt aktiviert ist.

Update -Abfrage ausführen:

Führen Sie den Befehl update ohne die where klausel aus, um zu prüfen, ob der sichere Update -Modus funktioniert oder nicht für die Aktualisierungsoperation. Wenn der Safe -Update -Modus aktiviert ist, wird der Fehler 1175 für die Update -Abfrage generiert.

Aktualisieren Sie Kunden, die contact_no = '02 -458934679 'festlegen;

Die folgende Ausgabe zeigt einen Fehler, der für die Update -Abfrage ohne HO FOL -Klausel erzeugt wurde, und es wurde kein Aktualisierungsvorgang durchgeführt.

Angenommen, die obige Update -Abfrage wird von jeder grafischen Benutzeroberfläche wie PHPMYADMIN ausgeführt, in der der Safe -Update -Modus standardmäßig deaktiviert ist. In diesem Fall erfolgt die Aktualisierungsoperation basierend auf der Erlaubnis des Benutzers. Wenn der Benutzer die Erlaubnis erteilt, dann der contact_no Feld aller Aufzeichnungen der Kunden Die Tabelle wird aktualisiert; Ansonsten wird nichts getan.

Löschen Sie die Abfrage aus:

Führen Sie den Befehl löschen ohne die Klausel aus, um zu überprüfen, ob der sichere Aktualisierungsmodus funktioniert oder nicht für den Löschvorgang. Wenn der Safe -Update -Modus aktiviert ist, wird der Fehler 1175 für die Löschabfrage wie die Aktualisierungsabfrage generiert.

Von Kunden löschen;

Die folgende Ausgabe zeigt einen Fehler, der für die Löschabfrage ohne HEITE -Klausel erzeugt wurde, und es wurde kein Löschvorgang durchgeführt.

Nehmen wir an, die obige Löschabfrage wird von jeder grafischen Benutzeroberfläche wie PHPMYADMIN ausgeführt, in der der sichere Aktualisierungsmodus standardmäßig deaktiviert ist. In diesem Fall wird der Löschvorgang basierend auf der Erlaubnis des Benutzers wie der Update -Abfrage erfolgen. Wenn der Benutzer die Erlaubnis erteilt, sind alle Datensätze der Kunden Die Tabelle wird gelöscht; Ansonsten wird nichts getan.

Führen Sie den Befehl Update und löschen aus, nachdem Sie den sicheren Aktualisierungsmodus deaktiviert haben:

Führen Sie die folgenden Befehle aus, um den sicheren Aktualisierungsmodus zu deaktivieren und den Wert des SQL_SAFE_UPDATES Variable.

SET SQL_SAFE_UPDATES = 0;
Variablen wie "SQL_SAFE_UPDATES" anzeigen;

Die folgende Ausgabe zeigt, dass der sichere Aktualisierungsmodus jetzt deaktiviert ist.

Führen Sie wie im vorherigen Aktualisierungsbefehl den folgenden Aktualisierungsbefehl ohne Klausel aus, um die Aktualisierungsoperation zu überprüfen oder nicht, nachdem Sie den sicheren Update -Modus deaktiviert haben.

Aktualisieren Sie die Kunden setzen Adress = 'Dhaka';

Die folgende Ausgabe zeigt, dass die Aktualisierungsoperation ohne Fehler abgeschlossen wurde und vier Zeilen der Kunden Die Tabelle wurde betroffen.

Führen Sie die folgende Abfrage aus, um den aktuellen Inhalt des Kunden Tisch.

Wählen Sie * von Kunden aus;

Die folgende Ausgabe zeigt, dass der Zeichenfolgenwert alle Adressfeldwerte aktualisiert hat, ''Dhaka '.

Führen Sie wie im vorherigen Befehl vorherige Löschbefehl den folgenden Befehl Löschen aus, ohne die Klausel zu überprüfen, um die Löschung zu überprüfen oder nicht, nachdem Sie den sicheren Aktualisierungsmodus deaktiviert haben.

Von Kunden löschen;

Die folgende Ausgabe zeigt, dass der Löschvorgang ohne Fehler abgeschlossen wurde.

Führen Sie die folgende Abfrage aus, um den aktuellen Inhalt des Kunden Tisch.

Wählen Sie * von Kunden aus;

Die folgende Ausgabe zeigt, dass alle Datensätze der Kunden Tabelle wurde gelöscht.

Abschluss:

Der sichere Update -Modus von MySQL ist ein wesentliches Merkmal, um unerwünschte Updates zu verhindern oder Operationen versehentlich zu löschen. Die Möglichkeit, diesen Modus durch Einstellen der erforderlichen Variablen zu aktivieren und zu deaktivieren, wurde in diesem Tutorial gezeigt. Wie das Update- und Löschen von Vorgängen ohne die Where -Klausel basierend auf dem sicheren Aktualisierungsmodus funktioniert, wurde auch hier mithilfe einer Tabelle gezeigt.