web-dev-qa-db-ger.com

MySQL Workbench Edit Table-Daten sind schreibgeschützt

Beim Versuch, Tabellendaten in MySQL Workbench 5.2.37 zu bearbeiten, ist es schreibgeschützt.

Sie kann nur bearbeitet werden, wenn die Tabelle einen Primärschlüssel hat.

Gibt es ein Problem mit der Tabelle ohne Primärschlüssel?

Vielen Dank

Als einen der Vorschläge habe ich versucht, WB 5.2.40 zu aktualisieren. Aber es gibt immer noch dieses Problem ... Könnte jemand helfen?.

58
EscalinNancy

Ich gehe davon aus, dass die Tabelle einen Primärschlüssel hat. Versuchen Sie zunächst, einen Befehl zum Entsperren von Tabellen auszuführen, um zu sehen, ob der Befehl dies behebt.

Wenn alles andere fehlschlägt, können Sie die Tabelle ändern, um eine neue Primärschlüsselspalte mit automatischem Inkrement zu erstellen. Dies sollte hoffentlich behoben werden. Sobald Sie fertig sind, sollten Sie die Spalte ohne Probleme entfernen können. 

Wie immer möchten Sie eine Sicherungskopie erstellen, bevor Sie Tabellen ändern. :)

Hinweis: MySQL Workbench kann in diesem Fall nicht ohne Primärschlüssel arbeiten. Wenn Sie jedoch viele bis viele Tabellen haben, können Sie beide Spalten als Primärschlüssel festlegen, wodurch Sie die Daten bearbeiten können.

55
Thomas B

wenn für die Tabelle kein Primärschlüssel oder eine eindeutige nicht-nullfähige Definition definiert ist, kann die MySql-Workbench die Daten nicht bearbeiten.

23
Tarun Singhal

Wenn Sie ein Standardschema für Ihre DB-Verbindung festlegen, wird Select im schreibgeschützten Modus ausgeführt, bis Sie Ihr Schema explizit festlegen

USE mydb;
SELECT * FROM mytable

dies wird auch im Bearbeitungsmodus ausgeführt:

SELECT * FROM mydb.mytable 

(MySql 5.2.42/MacOsX)

Ich hoffe das hilft.

11
Manitoba

Dies ist die Bekannte Einschränkung in MySQLWorkbench (Sie können keine Tabelle ohne PK bearbeiten) 

So bearbeiten Sie die Tabelle:

Methode 1: (Methode funktioniert in manchen Fällen nicht)
Klicken Sie mit der rechten Maustaste auf eine Tabelle im Objektbrowser, und wählen Sie die Option Tabellendaten bearbeiten aus. 

Methode 2:
Ich würde lieber vorschlagen, dass Sie stattdessen Primärschlüssel hinzufügen:

ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);

vielleicht möchten Sie die vorhandenen Zeilen zuerst entfernen:

Truncate table your_table_name
5
JerryGoyal

In MySQL Workbench benötigen Sie zum Bearbeiten einen INDEX. Es muss kein PK sein (obwohl das Hinzufügen einer PK auch eine Lösung ist). 

Sie können einen normalen INDEX oder einen zusammengesetzten INDEX erstellen. Das ist alles, was MySQL WB benötigt, um das Read-only-Problem zu beheben (ich habe Version 6.2 mit MariaDB Version 10.1.4):

Klicken Sie mit der rechten Maustaste auf die Tabelle, wählen Sie "Tabelle ändern ..." aus, und wechseln Sie zur Registerkarte "Indizes". Geben Sie im linken Bereich einen benutzerdefinierten Namen für Ihren Index ein, und markieren Sie im mittleren Bereich ein Feld (stellen Sie sicher, dass der Wert eindeutig ist) oder mehrere Felder (stellen Sie sicher, dass die Kombination eindeutig ist).

2
aesede

Wenn Sie den Mauszeiger über das Symbol "Nur Lesen" in der MySQL-Workbench bewegen, wird ein Tooltip angezeigt, der erklärt, warum er nicht bearbeitet werden kann. In meinem Fall heißt es, dass nur Tabellen mit Primärschlüsseln oder eindeutigen nicht-nullfähigen Spalten bearbeitet werden können.

1
Tarun Garg

Laut diesem Fehler wurde das Problem in Workbench 5.2.38 für einige Personen und möglicherweise 5.2.39 für andere behoben. Können Sie auf die neueste Version (5.2.40) upgraden ?

Alternativ ist es möglich, mit folgenden Problemen umzugehen:

SELECT *,'' FROM my_table
1
eggyal

Ich habe das Nur-Lese-Problem erhalten, selbst wenn ich den Primärschlüssel auswählte. Ich fand schließlich heraus, dass es ein Gehäuseproblem war. Anscheinend muss die PK-Spalte wie in der Tabelle definiert sein. using: workbench 6.3 unter Windows

Schreibgeschützt

SELECT Leadid, Vorname, Nachname, Datumerstellung FROM Lead; 

Erlaubte Bearbeitung

SELECT LeadID, Vorname, Nachname, Datumerstellung FROM Lead; 

1
Quad9x

1.) Sie müssen den Primärschlüssel eindeutig machen, dann sollten Sie ihn bearbeiten können.

klicken Sie mit der rechten Maustaste auf Ihre Tabelle in den "blauen" Schemata -> ALTER TABLE, suchen Sie nach Ihrem primert key (PK) und aktivieren Sie dann das Kontrollkästchen UN, die KI sollte bereits aktiviert sein. Danach einfach anwenden und Sie sollten die Tabellendaten bearbeiten können.

2.) Sie müssen auch den Primery-Schlüssel in Ihre select-Anweisung einfügen 

Nr 1 ist nicht wirklich notwendig, aber eine gute Praxis.

0
Degar007

Wenn Ihre Abfrage JOINs hat, kann Mysql Workbench die Tabelle nicht ändern, selbst wenn alle Ergebnisse aus einer einzigen Tabelle stammen.

Zum Beispiel die folgende Abfrage

SELECT u.* FROM users u JOIN passwords p ON u.id=p.user_id WHERE p.password IS NULL;

sie können die Ergebnisse nicht bearbeiten oder Zeilen hinzufügen, auch wenn die Ergebnisse auf eine Tabelle beschränkt sind. Sie müssen etwas tun wie:

SELECT * FROM users WHERE id=1012;

und dann können Sie die Zeile bearbeiten und der Tabelle Zeilen hinzufügen.

0
Keith Tyler

Geleitet von Manitobas Post fand ich eine andere Lösung. Zusammenfassend sind die Lösungen:

  1. Mit einem USE-Befehl

    USE mydb;
    SELECT * FROM mytable
    
  2. Mit einem expliziten Schemapräfix:

    SELECT * FROM mydb.mytable
    
  3. GUI

    Im Objekt-Browser-Bereich "SCHEMAS" werden zunächst alle Datenbanksymbole nicht markiert, wenn Sie dasselbe Problem haben. Sie können also mit der rechten Maustaste auf das Datenbanksymbol klicken, das Sie als Standard festlegen möchten.

0
Earth Engine