„MySQL“ klaidos kodas 1175 atnaujinant „MySQL“.

Mysql Klaidos Kodas 1175 Atnaujinant Mysql



„Dirbdami su MySQL duomenų bazėmis galite susidurti su klaidos kodu 1175, suaktyvintu vykdant UPDATE arba DELETE instrukcijas.

Šiame įraše bus aptarta šios klaidos priežastis ir kaip ją išspręsti naudojant MySQL serverį.





Kas sukelia „MySQL klaidos kodą 1175“?

„MySQL klaidos kodas 1175“ įvyksta atliekant UPDATE arba DELETE operaciją nenaudojant WHERE sąlygos.



Pagal numatytuosius nustatymus MySQL naudoja funkciją, vadinamą safe_mode, kuri neleidžia vykdyti sakinio UPDATE arba DELETE be WHERE sąlygos. Tai apsaugo nuo atsitiktinio duomenų praradimo taikinyje.



Todėl, kai suaktyvinama saugaus režimo funkcija, MySQL pateiks klaidos kodą 1175 atliekant bet kokią DELETE arba UPDATE operaciją, kurioje nėra WHERE sąlygos.





Pavyzdys parodytas žemiau:

atnaujinti sakila.film rinkinys pavadinimas = 'Naujas pavadinimas' ;



Šiuo atveju bandome pakeisti pavadinimo stulpelio reikšmę nenurodydami, pagal kurią eilutę norime taikyti. Dėl to galime perrašyti visą lentelę nurodyta verte. Taigi, MySQL to užkirs kelią ir grąžins klaidą, kaip parodyta:

MySQL Patikrinkite, ar Safe_Mode įjungtas

Safe_mode funkcijos būsena saugoma kintamajame sql_safe_updates. Taigi galime gauti šio kintamojo reikšmę, kad nustatytume, ar saugaus režimo funkcija įjungta, ar ne.

Užklausa yra tokia, kaip parodyta:

rodyti kintamuosius kaip 'sql_safe_updates' ;

Užklausa turi grąžinti būseną, kaip parodyta:

+------------------+-------+
| Kintamojo_pavadinimas | Vertė |
+------------------+-------+
| sql_safe_updates | ĮJUNGTA |
+------------------+-------+
1 eilė in rinkinys ( 0.00 sek )

Tokiu atveju matome, kad seanso metu įjungta saugaus režimo funkcija.

Kaip išspręsti „MySQL klaidos kodą 1175“

Geriausias būdas išspręsti tokio tipo klaidas yra WHERE sąlyga. Tačiau kai kuriais atvejais mums gali tekti atlikti UPDATE arba DELETE be jokių sąlygų.

Norėdami tai padaryti, seanso metu galime išjungti funkciją safe_mode, kad galėtume vykdyti užklausą. Tada galime naudoti komandą SET, po kurios nurodomas kintamojo pavadinimas ir reikšmė, kurią norime nustatyti.

Pavyzdžiui, norėdami išjungti safe_mode, kintamojo sql_safe_updates reikšmę nustatome į 0. Užklausa yra tokia, kaip parodyta:

NUSTATYTI SQL_SAFE_UPDATES = 0 ;

Norėdami jį įjungti, nustatykite reikšmę į 1 kaip:

NUSTATYTI SQL_SAFE_UPDATES = 1 ;

„MySQL Workbench“ galite išjungti „safe_mode“ funkciją, eidami į Redaguoti-> Nuostatos -> SQL redaktorius

Išjungė „Saugių atnaujinimų“ funkciją ir iš naujo paleido seansą prie serverio.

Nutraukimas

Atlikdami UPDATE arba DELETE sakinius, šiame įraše sužinojote „MySQL klaidos kodo 1175“ priežastį. Taip pat sužinojote, kaip išspręsti klaidą išjungę MySQL safe_mode funkciją.