MySQL kod pogreške 1175 tijekom AŽURIRANJA u MySQL-u

Mysql Kod Pogreske 1175 Tijekom Azuriranja U Mysql U



'Kad radite s MySQL bazama podataka, možete naići na 'Kod pogreške 1175' koji se aktivira prilikom izvođenja instrukcija UPDATE ili DELETE.'

Ovaj post će raspravljati o uzroku ove pogreške i kako je možemo riješiti pomoću MySQL poslužitelja.







Što uzrokuje 'MySQL kod pogreške 1175'?

'MySQL kod pogreške 1175' pojavljuje se prilikom izvođenja operacije UPDATE ili DELETE bez korištenja klauzule WHERE.



Prema zadanim postavkama, MySQL koristi značajku nazvanu safe_mode koja vas sprječava da izvršite naredbu UPDATE ili DELETE bez klauzule WHERE. To sprječava svaki slučajni gubitak podataka na meti.



Stoga, kada je značajka safe_mode aktivirana, MySQL će vratiti šifru pogreške 1175 za bilo koju operaciju DELETE ili UPDATE koja ne uključuje klauzulu WHERE.





Primjer je prikazan u nastavku:

ažurirati sakila.film postaviti naslov = 'Novi naslov' ;



U ovom slučaju pokušavamo promijeniti vrijednost stupca naslova bez navođenja redaka koji želimo ciljati. To može dovesti do toga da cijelu tablicu prebrišemo navedenom vrijednošću. Stoga će MySQL to spriječiti i vratiti pogrešku kao što je prikazano:

MySQL Provjerite je li Safe_Mode omogućen

Stanje značajke safe_mode pohranjuje se u varijabli sql_safe_updates. Dakle, možemo dohvatiti vrijednost ove varijable kako bismo utvrdili je li značajka safe_mode omogućena ili ne.

Upit je kao što je prikazano:

prikaži varijable poput 'sql_safe_updates' ;

Upit bi trebao vratiti stanje kao što je prikazano:

+-----------------+-------+
| Ime_varijable | Vrijednost |
+-----------------+-------+
| sql_safe_updates | NA |
+-----------------+-------+
1 red u postaviti ( 0,00 sek )

U ovom slučaju možemo vidjeti da je značajka safe_mode omogućena u sesiji.

Kako riješiti 'MySQL kod pogreške 1175'

Najbolji način za rješavanje ove vrste pogreške je korištenje WHERE klauzule. Međutim, u nekim slučajevima, možda ćemo morati izvršiti AŽURIRANJE ili BRISANJE bez ikakvih uvjeta.

Da bismo to učinili, možemo onemogućiti značajku safe_mode u sesiji, dopuštajući nam da izvršimo upit. Zatim možemo upotrijebiti naredbu SET nakon koje slijedi naziv varijable i vrijednost koju želimo postaviti.

Na primjer, da onemogućimo safe_mode, postavljamo vrijednost varijable sql_safe_updates na 0. Upit je kao što je prikazano:

SET SQL_SAFE_UPDATES = 0 ;

Da biste ga omogućili, postavite vrijednost na 1 kao:

SET SQL_SAFE_UPDATES = 1 ;

U MySQL Workbenchu ​​možete onemogućiti značajku safe_mode odlaskom na Edit-> Preferences -> SQL Editor

Onemogućili ste značajku 'Sigurna ažuriranja' i ponovno pokrenuli sesiju na poslužitelju.

Raskid

Naučili ste uzrok 'MySQL koda pogreške 1175' u ovom postu prilikom izvođenja naredbi UPDATE ili DELETE. Također ste naučili kako riješiti pogrešku onemogućavanjem značajke MySQL safe_mode.