Codice di errore MySQL 1175 durante l'AGGIORNAMENTO in MySQL

Codice Di Errore Mysql 1175 Durante L Aggiornamento In Mysql



'Quando si lavora con i database MySQL, è possibile che venga visualizzato il 'Codice di errore 1175' attivato durante l'esecuzione di istruzioni UPDATE o DELETE'.

Questo post discuterà la causa di questo errore e come possiamo risolverlo utilizzando il server MySQL.







Quali sono le cause del 'codice di errore MySQL 1175'?

Il 'Codice errore MySQL 1175' si verifica quando si esegue un'operazione UPDATE o DELETE senza utilizzare la clausola WHERE.



Per impostazione predefinita, MySQL utilizza una funzionalità chiamata safe_mode che impedisce di eseguire un'istruzione UPDATE o DELETE senza una clausola WHERE. Ciò impedisce qualsiasi perdita accidentale di dati sul target.



Pertanto, quando viene attivata la funzione safe_mode, MySQL restituirà il codice di errore 1175 su qualsiasi operazione DELETE o UPDATE che non include una clausola WHERE.





Un esempio è mostrato di seguito:

aggiorna sakila.film impostare titolo = 'Nuovo titolo' ;



In questo caso, stiamo tentando di modificare il valore della colonna del titolo senza specificare quale riga desideriamo scegliere come target. Ciò può comportare la sovrascrittura dell'intera tabella con il valore specificato. Quindi, MySQL lo impedirà e restituirà un errore come mostrato:

MySQL Controlla se Safe_Mode è abilitato

Lo stato della funzionalità safe_mode è archiviato nella variabile sql_safe_updates. Quindi, possiamo recuperare il valore di questa variabile per determinare se la funzione safe_mode è abilitata o meno.

La query è come mostrato:

mostra variabili come 'sql_safe_updates' ;

La query dovrebbe restituire lo stato come mostrato:

+-------------------+-------+
| Nome_variabile | Valore |
+-------------------+-------+
| sql_safe_updates | SU |
+-------------------+-------+
1 riga in impostare ( 0.00 sec )

In questo caso, possiamo vedere che la funzione safe_mode è abilitata nella sessione.

Come risolvere il 'Codice errore MySQL 1175'

Il modo migliore per risolvere questo tipo di errore è utilizzare una clausola WHERE. Tuttavia, in alcuni casi, potrebbe essere necessario eseguire un UPDATE o DELETE senza alcuna condizione.

Per fare ciò, possiamo disabilitare la funzione safe_mode nella sessione, consentendoci di eseguire la query. Quindi, possiamo utilizzare il comando SET seguito dal nome della variabile e dal valore che desideriamo impostare.

Ad esempio, per disabilitare safe_mode, impostiamo il valore della variabile sql_safe_updates su 0. La query è la seguente:

IMPOSTA SQL_SAFE_UPDATES = 0 ;

Per abilitarlo, impostare il valore su 1 come:

IMPOSTA SQL_SAFE_UPDATES = 1 ;

In MySQL Workbench, puoi disabilitare la funzione safe_mode navigando su Modifica-> Preferenze -> Editor SQL

Disattiva la funzione 'Aggiornamenti sicuri' e riavvia la sessione sul server.

Cessazione

Hai appreso la causa del 'Codice di errore MySQL 1175' in questo post durante l'esecuzione di istruzioni UPDATE o DELETE. Hai anche imparato a risolvere l'errore disabilitando la funzione MySQL safe_mode.