MySQL-fejlkode 1175 under OPDATERING i MySQL

Mysql Fejlkode 1175 Under Opdatering I Mysql



'Når du arbejder med MySQL-databaser, kan du støde på 'Fejlkode 1175', der udløses, når du udfører en OPDATERING eller SLETTE-instruktion.'

Dette indlæg vil diskutere årsagen til denne fejl, og hvordan vi kan løse det ved hjælp af MySQL-serveren.







Hvad forårsager 'MySQL-fejlkode 1175'?

'MySQL Error Code 1175' opstår, når du udfører en UPDATE- eller DELETE-handling uden at bruge WHERE-sætningen.



Som standard bruger MySQL en funktion kaldet safe_mode, der forhindrer dig i at udføre en UPDATE- eller DELETE-sætning uden en WHERE-sætning. Dette forhindrer utilsigtet datatab på målet.



Derfor, når safe_mode-funktionen er aktiveret, returnerer MySQL fejlkoden 1175 ved enhver DELETE- eller UPDATE-operation, der ikke indeholder en WHERE-klausul.





Et eksempel er vist nedenfor:

opdater sakila.film sæt titel = 'Ny titel' ;



I dette tilfælde forsøger vi at ændre værdien af ​​titelkolonnen uden at angive, hvilken række vi ønsker at målrette mod. Dette kan resultere i, at vi overskriver hele tabellen med den angivne værdi. Derfor vil MySQL forhindre dette og returnere en fejl som vist:

MySQL Tjek om Safe_Mode er aktiveret

Tilstanden for safe_mode-funktionen er gemt i variablen sql_safe_updates. Derfor kan vi hente værdien af ​​denne variabel for at bestemme, om safe_mode-funktionen er aktiveret eller ej.

Forespørgslen er som vist:

vise variabler som 'sql_safe_updates' ;

Forespørgslen skal returnere tilstanden som vist:

+-------------------+-------+
| Variabel_navn | Værdi |
+-------------------+-------+
| sql_safe_updates | |
+-------------------+-------+
1 række i sæt ( 0,00 sek )

I dette tilfælde kan vi se, at safe_mode-funktionen er aktiveret på sessionen.

Sådan løses 'MySQL-fejlkode 1175'

Den bedste måde at løse denne type fejl på er at bruge en WHERE-klausul. Men i nogle tilfælde kan vi være nødt til at udføre en OPDATERING eller SLETT uden nogen betingelse.

For at gøre dette kan vi deaktivere safe_mode-funktionen i sessionen, så vi kan udføre forespørgslen. Derefter kan vi bruge SET-kommandoen efterfulgt af variabelnavnet og den værdi, vi ønsker at indstille.

For at deaktivere sikker_tilstand f.eks. sætter vi værdien af ​​variablen sql_safe_updates til 0. Forespørgslen er som vist:

SET SQL_SAFE_UPDATES = 0 ;

For at aktivere det skal du indstille værdien til 1 som:

SET SQL_SAFE_UPDATES = 1 ;

I MySQL Workbench kan du deaktivere safe_mode-funktionen ved at navigere til Rediger-> Indstillinger -> SQL Editor

Deaktiverede funktionen 'Sikker opdatering' og genstartede din session til serveren.

Afslutning

Du lærte årsagen til 'MySQL-fejlkode 1175' i dette indlæg, når du udførte UPDATE- eller DELETE-sætninger. Du har også lært, hvordan du løser fejlen ved at deaktivere MySQL safe_mode-funktionen.