Κωδικός σφάλματος MySQL 1175 κατά την ΕΝΗΜΕΡΩΣΗ στο MySQL

Kodikos Sphalmatos Mysql 1175 Kata Ten Enemerose Sto Mysql



'Όταν εργάζεστε με βάσεις δεδομένων MySQL, ενδέχεται να αντιμετωπίσετε τον 'Κωδικό σφάλματος 1175' που ενεργοποιείται κατά την εκτέλεση εντολών ΕΝΗΜΕΡΩΣΗΣ ή ΔΙΑΓΡΑΦΗΣ.'

Αυτή η ανάρτηση θα συζητήσει την αιτία αυτού του σφάλματος και πώς μπορούμε να το επιλύσουμε χρησιμοποιώντας τον διακομιστή MySQL.







Τι προκαλεί τον 'Κωδικό σφάλματος MySQL 1175';

Ο 'Κωδικός σφάλματος MySQL 1175' εμφανίζεται κατά την εκτέλεση μιας λειτουργίας ΕΝΗΜΕΡΩΣΗΣ ή ΔΙΑΓΡΑΦΗΣ χωρίς τη χρήση της ρήτρας WHERE.



Από προεπιλογή, η MySQL χρησιμοποιεί μια δυνατότητα που ονομάζεται safe_mode που σας εμποδίζει να εκτελέσετε μια πρόταση UPDATE ή DELETE χωρίς ρήτρα WHERE. Αυτό αποτρέπει τυχόν τυχαία απώλεια δεδομένων στον στόχο.



Επομένως, όταν ενεργοποιηθεί η δυνατότητα safe_mode, η MySQL θα επιστρέψει τον κωδικό σφάλματος 1175 σε οποιαδήποτε λειτουργία DELETE ή UPDATE που δεν περιλαμβάνει όρο WHERE.





Ένα παράδειγμα φαίνεται παρακάτω:

ενημέρωση sakila.film σειρά τίτλος = 'Νέος τίτλος' ;



Σε αυτήν την περίπτωση, προσπαθούμε να αλλάξουμε την τιμή της στήλης τίτλου χωρίς να καθορίσουμε ποια σειρά θέλουμε να στοχεύσουμε. Αυτό μπορεί να έχει ως αποτέλεσμα να αντικαταστήσουμε ολόκληρο τον πίνακα με την καθορισμένη τιμή. Ως εκ τούτου, η MySQL θα το αποτρέψει και θα επιστρέψει ένα σφάλμα όπως φαίνεται:

MySQL Ελέγξτε εάν το Safe_Mode είναι ενεργοποιημένο

Η κατάσταση της δυνατότητας safe_mode αποθηκεύεται στη μεταβλητή sql_safe_updates. Ως εκ τούτου, μπορούμε να ανακτήσουμε την τιμή αυτής της μεταβλητής για να προσδιορίσουμε εάν η δυνατότητα safe_mode είναι ενεργοποιημένη ή όχι.

Το ερώτημα είναι όπως φαίνεται:

εμφάνιση μεταβλητών όπως 'sql_safe_updates' ;

Το ερώτημα πρέπει να επιστρέψει την κατάσταση όπως φαίνεται:

+------------------+-------+
| Όνομα_μεταβλητής | αξία |
+------------------+-------+
| sql_safe_updates | ΕΠΙ |
+------------------+-------+
1 σειρά σε σειρά ( 0,00 δευτ )

Σε αυτήν την περίπτωση, μπορούμε να δούμε ότι η δυνατότητα safe_mode είναι ενεργοποιημένη στη συνεδρία.

Τρόπος επίλυσης του 'Κωδικού σφάλματος MySQL 1175'

Ο καλύτερος τρόπος για την επίλυση αυτού του τύπου σφάλματος είναι η χρήση μιας ρήτρας WHERE. Ωστόσο, σε ορισμένες περιπτώσεις, μπορεί να χρειαστεί να πραγματοποιήσουμε ΕΝΗΜΕΡΩΣΗ ή ΔΙΑΓΡΑΦΗ χωρίς καμία προϋπόθεση.

Για να γίνει αυτό, μπορούμε να απενεργοποιήσουμε τη δυνατότητα safe_mode στη συνεδρία, επιτρέποντάς μας να εκτελέσουμε το ερώτημα. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε την εντολή SET ακολουθούμενη από το όνομα της μεταβλητής και την τιμή που θέλουμε να ορίσουμε.

Για παράδειγμα, για να απενεργοποιήσουμε το safe_mode, ορίζουμε την τιμή της μεταβλητής sql_safe_updates σε 0. Το ερώτημα είναι όπως φαίνεται:

SET SQL_SAFE_UPDATES = 0 ;

Για να το ενεργοποιήσετε, ορίστε την τιμή σε 1 ως:

SET SQL_SAFE_UPDATES = 1 ;

Στο MySQL Workbench, μπορείτε να απενεργοποιήσετε τη δυνατότητα safe_mode μεταβαίνοντας στο Edit-> Preferences -> SQL Editor

Απενεργοποίησε τη δυνατότητα 'Ασφαλείς ενημερώσεις' και επανεκκίνησε τη συνεδρία σου στον διακομιστή.

Λήξη

Μάθατε την αιτία του 'MySQL Error Code 1175' σε αυτήν την ανάρτηση κατά την εκτέλεση δηλώσεων ΕΝΗΜΕΡΩΣΗ ή ΔΙΑΓΡΑΦΗ. Μάθατε επίσης πώς να επιλύσετε το σφάλμα απενεργοποιώντας τη δυνατότητα MySQL safe_mode.