Kod błędu MySQL: 1175 podczas aktualizacji w MySQL Workbench
Próbuję zaktualizować kolumnę visited
, aby nadać jej wartość 1. Używam MySQL workbench, i piszę instrukcję w edytorze SQL z wewnątrz workbench. Piszę następującą komendę:
UPDATE tablename SET columnname=1;
Daje mi następujący błąd:
Używasz trybu bezpiecznej aktualizacji i próbowałeś zaktualizować tabelę bez a gdzie używa kolumny kluczowej do wyłączenia trybu awaryjnego, przełącz opcję ....
Postępowałem zgodnie z instrukcjami i odznaczyłem safe update
opcja z menu Edit
Następnie Preferences
następnie SQL Editor
. Ten sam błąd nadal pojawia się i nie jestem w stanie zaktualizować tej wartości. Proszę, powiedz mi, co się stało?
15 answers
Wygląda na to, że Twoja sesja MySql ma ustawioną opcję safe-updates. Oznacza to, że nie można aktualizować ani usuwać rekordów bez podania klucza(np. primary key
) w klauzuli where.
Spróbuj:
SET SQL_SAFE_UPDATES = 0;
Lub możesz zmodyfikować swoje zapytanie zgodnie z regułą (użyj primary key
w where clause
).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-25 19:10:51
Wykonaj następujące kroki przed wykonaniem polecenia UPDATE: In MySQL Workbench
- idź do
Edit
-->Preferences
- Kliknij
"SQL Editor"
zakładkę Iuncheck
"bezpieczne aktualizacje"check box
-
Query
-->Reconnect to Server
// Wyloguj się, a następnie zaloguj się - teraz wykonaj swoje zapytanie SQL
P. s., nie trzeba restartować demona MySQL!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-05 09:49:51
SET SQL_SAFE_UPDATES=0;
UPDATE tablename SET columnname=1;
SET SQL_SAFE_UPDATES=1;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-05 06:27:14
Wystarczy uruchomić nowe zapytanie i uruchomić:
SET SQL_SAFE_UPDATES = 0;
Następnie: uruchom zapytanie, które próbowałeś uruchomić, które wcześniej nie działało.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-08 06:37:46
Nie ma potrzeby ustawiania SQL_SAFE_UPDATES na 0 , naprawdę zniechęcałbym go do tego. Po prostu dodaj w klauzuli WHERE wartość klucza, która pasuje do wszystkiego jak klucz podstawowy w porównaniu z 0, więc zamiast pisać:
UPDATE customers SET countryCode = 'USA'
WHERE country = 'USA'; -- which gives the error, you just write:
UPDATE customers SET countryCode = 'USA'
WHERE (country = 'USA' AND customerNumber <> 0); -- Because customerNumber is a primary key you got no error 1175 any more.
Teraz możesz mieć pewność, że każdy rekord jest aktualizowany tak, jak oczekujesz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-04 08:23:26
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-19 17:37:45
SET SQL_SAFE_UPDATES=0;
Lub
Przejdź do Edit --> Preferences
Klik SQL Queries
tab i odznacz Safe Updates
check box
Query --> Reconnect to Server
Teraz wykonaj swoje zapytanie sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-04 11:16:38
Jeśli jesteś w trybie awaryjnym, musisz podać id w klauzuli where. Więc coś takiego powinno zadziałać!
UPDATE tablename SET columnname=1 where id>0
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 09:32:40
Znalazłem odpowiedź. Problem polegał na tym, że muszę poprzedzić nazwę tabeli nazwą schematu. tzn. komenda powinna brzmieć:
UPDATE schemaname.tablename SET columnname=1;
Dzięki wszystkim.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-25 05:49:02
W MySQL Workbech w wersji 6.2 nie wyłączaj opcji Preference SQLQueries
.
SET SQL_SAFE_UPDATES=0;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-10 19:55:49
Kod Błędu: 1175. Używasz trybu bezpiecznej aktualizacji i próbowałeś zaktualizować tabelę bez gdzie, która używa kolumny kluczowej, aby wyłączyć tryb awaryjny, przełącz opcję w Preferencje - > Edytor SQL i połącz ponownie.
Wyłącz "Tryb bezpiecznej aktualizacji" tymczasowy
SET SQL_SAFE_UPDATES = 0;
UPDATE options SET title= 'kiemvieclam24h' WHERE url = 'http://kiemvieclam24h.net';
SET SQL_SAFE_UPDATES = 1;
Wyłącz "Tryb bezpiecznej aktualizacji" na zawsze
Mysql workbench 8.0:
MySQL Workbench => [ Edit ] => [ Preferences ] -> [ SQL Editor ] -> Uncheck "Safe Updates"
MySQL Workbench => [Edit] => [Preferences] => [SQL Queries]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-31 09:35:18
Najprostszym rozwiązaniem jest zdefiniowanie limitu wierszy i wykonanie. Odbywa się to ze względów bezpieczeństwa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-30 08:55:34
Ponieważ pytanie zostało udzielone i nie miało nic wspólnego z bezpiecznymi aktualizacjami, to może być złe miejsce; będę pisać tylko po to, aby dodać informacje.
Starałem się być dobrym obywatelem i zmodyfikowałem zapytanie, aby użyć tymczasowej tabeli identyfikatorów, która zostanie zaktualizowana:
create temporary table ids ( id int )
select id from prime_table where condition = true;
update prime_table set field1 = '' where id in (select id from ids);
Porażka. Zmieniono aktualizację na:
update prime_table set field 1 = '' where id <> 0 and id in (select id from ids);
Zadziałało. Cóż, jeśli zawsze dodaję gdzie klucz 0, aby ominąć bezpieczne sprawdzanie aktualizacji, lub nawet ustawić sql_safe_update=0, to straciłem "sprawdzanie" na moim zapytanie. Równie dobrze mogę wyłączyć tę opcję na stałe. Przypuszczam, że to sprawia, że usuwanie i aktualizacja dwuetapowy proces zamiast jednego.. ale jeśli piszesz wystarczająco szybko i przestaniesz myśleć o tym, że klucz jest wyjątkowy, ale raczej jako uciążliwy..Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 15:04:35
Prawda, to jest bezcelowe dla większości przykładów. Ale w końcu doszedłem do następującego stwierdzenia i działa dobrze:
update tablename set column1 = '' where tablename .id = (select id from tablename2 where tablename2.column2 = 'xyz');
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-10 11:20:59
To jest dla komputerów Mac, ale musi być takie samo dla innych systemów operacyjnych z wyjątkiem lokalizacji preferencji.
Błąd, który otrzymujemy, gdy spróbujemy niebezpiecznej operacji DELETE
W nowym oknie odznacz opcję Safe updates
Następnie zamknij i ponownie otwórz połączenie. Nie ma potrzeby ponownego uruchamiania usługi.
Teraz spróbujemy DELETE
ponownie z powodzeniem wyniki.
Więc o co chodzi z tymi bezpiecznymi aktualizacjami? To nie jest zła rzecz. Tak mówi o tym MySql.
Korzystanie z opcji --safe-updates
Dla początkujących przydatną opcją uruchamiania jest
--safe-updates
(lub--i-am-a-dummy
, który ma ten sam efekt). Jest to pomocne w przypadkach, gdy można było wydaćDELETE FROM tbl_name
oświadczenie, ale zapomniałem klauzuliWHERE
. Zwykle takie stwierdzenie usuwa wszystkie wiersze z tabeli. Z--safe-updates
, możesz Usuń wiersze tylko przez określenie kluczowych wartości, które je identyfikują. Pomaga to zapobiegać wypadki.Podczas korzystania z opcji
--safe-updates
, mysql wydaje następujące Instrukcja podczas łączenia się z serwerem MySQL:
SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;
bezpiecznie jest włączyć tę opcję podczas pracy z bazą danych produkcji. W przeciwnym razie należy bardzo uważać, aby nie przypadkowo usunąć ważnych danych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-05 07:22:01