Podczas próby edycji danych tabeli w MySQL Workbench 5.2.37 jest w trybie tylko do odczytu.
Można go edytować tylko wtedy, gdy tabela ma klucz podstawowy.
Czy jest jakaś poprawka do tabeli bez klucza podstawowego?
Dzięki
Jako jedną z sugestii spróbowałem zaktualizować WB 5.2.40. Ale ten problem nadal istnieje… Czy ktoś mógłby pomóc…
mysql
mysql-workbench
EscalinNancy
źródło
źródło
Odpowiedzi:
Zakładam, że tabela ma klucz podstawowy. Najpierw spróbuj uruchomić polecenie odblokowania tabel, aby sprawdzić, czy to naprawi.
Jeśli wszystko inne zawiedzie, możesz zmienić tabelę, aby utworzyć nową kolumnę klucza podstawowego z automatyczną inkrementacją, co, miejmy nadzieję, powinno to naprawić. Gdy skończysz, powinieneś być w stanie usunąć kolumnę bez żadnych problemów.
Jak zawsze chcesz wykonać kopię zapasową przed zmianą tabel. :)
Uwaga: Środowisko pracy MySQL nie może działać bez klucza podstawowego, jeśli na tym polega problem. Jeśli jednak masz wiele do wielu tabel, możesz ustawić obie kolumny jako klucze podstawowe, co pozwoli Ci edytować dane.
źródło
jeśli tabela nie ma zdefiniowanego klucza podstawowego lub unikatowego, nie dopuszczającego wartości null, środowisko robocze MySql nie może edytować danych.
źródło
Jeśli ustawisz domyślny schemat dla połączenia DB, to Select będzie działać w trybie tylko do odczytu, dopóki nie ustawisz jawnie swojego schematu
USE mydb; SELECT * FROM mytable
będzie to również działać w trybie edycji:
SELECT * FROM mydb.mytable
(MySql 5.2.42 / MacOsX)
Mam nadzieję, że to pomoże.
źródło
To jest znane ograniczenie w MySQLWorkbench (nie możesz edytować tabeli bez PK):
Aby edytować tabelę:
Metoda 1: (metoda nie działa w niektórych przypadkach)
kliknij prawym przyciskiem myszy tabelę w przeglądarce obiektów i wybierz opcję Edytuj dane tabeli.
Metoda 2:
Raczej sugeruję dodanie klucza podstawowego:
ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);
i możesz najpierw chcieć usunąć istniejące wiersze:
Truncate table your_table_name
źródło
Najechanie kursorem na ikonę „tylko do odczytu” w środowisku roboczym mysql powoduje wyświetlenie podpowiedzi wyjaśniającej, dlaczego nie można jej edytować. W moim przypadku powiedział, że można edytować tylko tabele z kluczami podstawowymi lub unikalnymi kolumnami niepodlegającymi wartości null.
źródło
W MySQL Workbench potrzebujesz INDEKSU do edycji, nie musi to być PK (chociaż dodanie PK jest również rozwiązaniem).
Możesz utworzyć zwykły lub złożony INDEKS. To wszystko, czego potrzebuje MySQL WB, aby naprawić tylko do odczytu (mam v. 6.2 z MariaDB v. 10.1.4):
Kliknij prawym przyciskiem myszy tabelę, wybierz „Zmień tabelę…” i przejdź do zakładki „Indeksy”. W lewym okienku umieść niestandardową nazwę swojego indeksu, aw środkowym okienku zaznacz jedno (upewnij się, że dolina będzie unikalna) lub więcej pól (tylko upewnij się, że kombinacja jest unikalna)
źródło
Pojawiał się problem tylko do odczytu, nawet gdy wybierałem klucz podstawowy. W końcu doszedłem do wniosku, że to problem z obudową. Najwyraźniej kolumna PK musi mieć taką samą wielkość liter, jak zdefiniowano w tabeli. przy użyciu: workbench 6.3 w systemie Windows
Tylko czytać
SELECT leadid, firstname, lastname, dataecreated FROM lead;
Dozwolona edycja
SELECT LeadID, imię, nazwisko, data utworzona FROM lead;
źródło
Zgodnie z tym błędem , problem został rozwiązany w Workbench 5.2.38 dla niektórych osób i być może 5.2.39 dla innych - czy możesz zaktualizować do najnowszej wersji (5.2.40)?
Alternatywnie można obejść ten problem:
SELECT *,'' FROM my_table
źródło
SELECT *, CONCAT('','') FROM my_table
. Może to zadziała dla Ciebie?Kierując się postem Manitoby, znalazłem inne rozwiązanie. Podsumowując, rozwiązania to:
Za pomocą polecenia USE
USE mydb; SELECT * FROM mytable
Z wyraźnym prefiksem schematu:
SELECT * FROM mydb.mytable
GUI
W oknie „SCHEMATY” przeglądarki obiektów wszystkie ikony bazy danych nie są początkowo podświetlane, jeśli występuje ten sam problem. Możesz więc kliknąć prawym przyciskiem myszy ikonę bazy danych, która ma być domyślna, i wybrać „Ustaw jako domyślny schemat”.
źródło
1.) Musisz uczynić klucz podstawowy unikalnym, a następnie powinieneś móc edytować.
kliknij prawym przyciskiem myszy swoją tabelę w "niebieskich" schematach -> ALTER TABLE, poszukaj swojego klawisza primert (PK), a następnie zaznacz pole wyboru, UN, AI powinno już być zaznaczone. Następnie po prostu zastosuj i powinieneś być w stanie edytować dane w tabeli.
2.) Musisz również dołączyć klucz podstawowy I do instrukcji Select
Nr 1 nie jest naprawdę potrzebny, ale dobra praktyka.
źródło
Jeśli zapytanie zawiera JOIN, Mysql Workbench nie pozwoli na zmianę tabeli, nawet jeśli wszystkie wyniki pochodzą z jednej tabeli.
Na przykład następujące zapytanie
SELECT u.* FROM users u JOIN passwords p ON u.id=p.user_id WHERE p.password IS NULL;
nie pozwoli Ci edytować wyników ani dodawać wierszy, mimo że wyniki są ograniczone do jednej tabeli. Musisz w szczególności zrobić coś takiego:
SELECT * FROM users WHERE id=1012;
a następnie możesz edytować wiersz i dodawać wiersze do tabeli.
źródło
SELECT u.* FROM users u WHERE u.id IN (SELECT user_id FROM passwords WHERE p.password IS NULL);
Odznacz zaznaczone pole wyboru, umożliwi to edycję siatki
źródło
MySQL będzie działać w trybie tylko do odczytu, gdy będziesz pobierać dane przez połączenie dwóch tabel, a w wyniku zostaną uwzględnione kolumny z dwóch tabel. Wtedy nie możesz bezpośrednio zaktualizować wartości.
źródło
Tak, stwierdziłem, że MySQL również nie może edytować tabel wyników. Zwykle tabele wyników łączące inne tabele nie mają kluczy podstawowych. Słyszałem, jak inni sugerowali umieszczenie tabeli wyników w innej tabeli, ale lepszym rozwiązaniem jest użycie Dbeavera, który może edytować tabele wyników.
źródło