it-swarm.com.de

Lösung: Diese Tabelle enthält keine eindeutige Spalte. Raster bearbeiten, Kontrollkästchen, Bearbeiten, Kopieren und Löschen sind nicht verfügbar

Dies ist keine Frage, sondern ein selbst erzeugtes Problem/eine Frage und Lösung, die ich gefunden habe. Ich dachte, es wäre eine anständige Höflichkeit zu teilen, da es keine vollständig funktionierende Lösung gab, die ich finden konnte.

Der in phpMyAdmin generierte Fehler lautet:

"Diese Tabelle enthält keine eindeutige Spalte. Gitterbearbeitungsfunktion, Kontrollkästchen, Bearbeiten, Kopieren und Löschen sind nicht verfügbar."

Abhängig von Ihrem genauen Szenario gibt es mehrere funktionierende Lösungen.

Solange beispielsweise alle Ihre KI- oder Eindeutigen-ID-Felder eindeutig sind, können Sie einfach die Tabelle ändern und sicherstellen, dass dies der Primärschlüssel ist und einen eindeutigen Wert festlegen.

Ich habe das mit dieser Lösung an einem meiner Tische gelöst.

Die andere Tabelle hatte mehrere AI int-Werte, die das Primärfeld waren, es gab jedoch mehrere Werte derselben Art. 

Die einfache Lösung bestand darin, als Unique AI Int eine Spalte am Ende der Tabelle hinzuzufügen. Grundsätzlich sagt MySQL, dass in jedem Datensatz ein eindeutiger Wert erforderlich ist, um die Zeilen zu unterscheiden.

Hoffe das war hilfreich.

54
OldWest

Ich bin mit diesem Problem konfrontiert.

Die Ursache ist Ihre Tabelle Sie haben kein Primärschlüsselfeld .

Und ich habe eine einfache Lösung: Setzen Sie ein Feld auf Primärschlüssel, und wählen Sie das Feld aus, das Ihrer Geschäftslogik entspricht.

Zum Beispiel habe ich die Datenbank thesis_db und das Feld thesis_id. Ich drücke den Button Primary (Schlüsselsymbol), um thesis_id als Primärschlüsselfeld festzulegen:

enter image description here

35
foobarfuu

Dies ist kein Fehler. PhpMyAdmin informiert Sie nur darüber, dass Ihre Ergebnismenge keine eindeutige ID-Spalte enthält. Abhängig von der Art der Abfrage, die Sie gesendet haben, ist dies das gewünschte Verhalten.

MySQL sagt nicht, dass es eine eindeutige ID benötigt. Wenn eine Kombination der Spalten in Ihrer Ergebnismenge eindeutig ist, können die Werte dieser Spalten in einer UPDATE- oder DELETE-Abfrage verwendet werden. PhpMyAdmin besagt, dass nicht genügend Informationen vorhanden sind, um die Kontrollkästchen und Schaltflächen zu bieten, die normalerweise in einer Ergebnismenge mit eindeutiger ID angezeigt werden.

20
dr fu manchu

Mein Fall ist anders. Dieses Problem betrifft nur PHPMyAdmin. Ich habe ein paar andere Admin-Tools (Adminer, MySQLWorkbench, HeidiSQL usw.) heruntergeladen, und die gleiche Datenbank funktioniert in allen diesen Bereichen.

Ich habe alle Indizes, Primärschlüssel und eindeutige Schlüssel definiert und bekomme immer noch den Fehler. Ich bekomme dies, nachdem ich ein Upgrade auf MySQL 5.6 durchgeführt habe (war bei den vorherigen Versionen nicht gleich). 

Es stellte sich heraus, dass PMA Probleme mit Tabellennamen in Großbuchstaben hat. PMA kann Schlüssel mit Namen von Großbuchstabellen nicht erkennen. Sobald ich sie zu klein geändert habe (ALTER TABLE mytable ENGINE=INNODB - ich verwende INNODB - erledigt das für jede Tabelle, ohne etwas anderes zu ändern), konnte ich normalerweise darauf zugreifen. Ich bin auf einem Windows-System mit UniformServer.

12
Ravi

Erstellen Sie einfach eine neue Spalte, setzen Sie Name auf das, was Sie möchten, setzen Sie Type auf INT und aktivieren Sie das Kontrollkästchen A_I.

 diagram Das Kontrollkästchen A_I steht für AUTO_INCREMENT, was im Wesentlichen bedeutet, dass Sequenznummern in dieser neuen Spalte automatisch zugewiesen werden (siehe unten). 

 column1 | column2 | id
-----------------------
 value   | value   | 1
-----------------------
 value   | value   | 2
-----------------------
 value   | value   | 3
-----------------------
 value   | value   | 4

Diese Spalte dient im Wesentlichen als Referenz für phpMyAdmin, aus der Zeilen gelöscht werden sollen. Klicken Sie ggf. auf die eindeutige Schaltfläche für diese neue Spalte, obwohl dies automatisch für mich der Fall ist. Nachdem Sie die obigen Schritte ausgeführt haben, sollten Sie die Fehlermeldung nicht mehr erhalten und Schaltflächen zum Bearbeiten von Zeilen in phpMyAdmin angezeigt werden!

11
Isaac Adni

Eine einfache Lösung dazu wäre, auf die Registerkarte SQL zu gehen und einfach den Code einzugeben 

ALTER TABLE `tablename`
ADD PRIMARY KEY (`id`);

Angenommen, Sie haben eine Zeile namens id.

2
Daniel Alsaker

In meinem Fall trat der Fehler in phpmyadmin Version 4.5.1 auf, als ich lower_case_table_names = 2 festlegte und einen Tabellennamen mit Großbuchstaben hatte. Die Tabelle hatte einen Primärschlüssel, der auf automatisch inkrementiert wurde, aber immer noch den Fehler zeigte. Das Problem wurde gestoppt, als ich den Tabellennamen in Kleinbuchstaben änderte.

1
nonybrighto

Dies wurde für mich behoben, indem die Daten aus dem ursprünglichen Quell-DB erneut exportiert und anschließend in den Spiegel-DB importiert wurden.

0
Philip Drury

Diese Frage half mir, das Problem zu identifizieren, warum mich phpMyAdmin mit grid-edit-etc abgelehnt hat. an einigen tischen. Ich hatte gerade vergessen, meinen Primärschlüssel anzugeben, und beaufsichtigte ihn in meinem "Warum zum Teufel sollte sich dieser Tisch von seinen Nachbarn unterscheiden?" Lösungssuchprozess ...

Ich wollte nur in der OP-Selbstantwort auf Folgendes reagieren: 

Die andere Tabelle hatte mehrere AI Int-Werte, die der Primärwert waren Feld, aber es gab mehrere Werte der gleichen Art.

Die einfache Lösung bestand darin, am Ende von .__ eine Spalte hinzuzufügen. Tabelle als Unique AI Int. MySQL sagt im Grunde, es braucht eine eindeutiger Wert in jedem Datensatz, um die Zeilen zu unterscheiden.

Dies war eigentlich mein Fall, aber es ist absolut nicht erforderlich, eine Spalte hinzuzufügen: Wenn Ihr Primärschlüssel die Kombination aus zwei Feldern ist (z. B. Verbindungstabelle in vielen zu vielen Beziehungen), dann deklarieren Sie sie einfach als solche:
- Eiter in phpyAdmin, geben Sie einfach "2" in "Index für [x] Spalten erstellen" ein und wählen Sie dann Ihre 2 Spalten aus
- oder ALTER TABLE mytable ADD PRIMARY KEY(mycol1,mycol2)

0
fpierrat

Ich habe diese Fehlermeldung erhalten, als ich versuchte, direkt nach dem Ausführen von Query zu ändern. Es stellte sich heraus, dass ich, nachdem ich aus derselben Abfrage eine Ansicht erstellt hatte, die Werte ändern konnte.

0
Ray Foss

Ich habe vor kurzem das gleiche Problem bekommen und nachdem ich nach Duplikaten gesucht hatte, konnte ich es beheben, indem ich den (fehlenden) Primärschlüssel auf den Tisch setzte. Hoffe das könnte helfen 

0
Yuri

Ich hatte das gleiche Problem, wenn ich SELECT-Abfragen mit bestimmten Spalten abfeuere, obwohl die Spalte in der Tabelle primär ist. Ich habe versucht, selektive Datensätze mit selektiven Spalten in der Standardtabelle "Posts" von WordPress abzurufen. ID-Spalte ist bereits primär und eindeutig.

Die Angabe des primären/eindeutigen Spaltennamens löst dieses Problem nicht. Sie müssen den vollständigen Spaltennamen wie "posts.id" (tabellenname.columnname) angeben, der PMA anweist, eine bestimmte Spalte auszuwählen und die Bearbeitung anzuzeigen.

Meine PMA ist 4.3.8. Lassen Sie mich wissen, ob das hilft..

0
vinay samant

der Code, der für mich funktionierte

ALTER TABLE `table name`
ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT,
ADD PRIMARY KEY (`id`);
0
Oleg Abramov

So werden Sie diese Mitteilung los und können diese Gitterzellen für die Bearbeitung öffnen

1) klicken Sie auf "STRUKTUR" 

2) Gehen Sie zu dem Feld, das Sie als Primärschlüssel verwenden möchten (und dies ist normalerweise der erste). Klicken Sie anschließend auf die Felder "PRIMARY" und "INDEX" für dieses Feld und akzeptieren Sie die Popup-Frage "OK" von PHPMyadmin. 

3) schieben Sie sich in den Rücken.

0
Average Joe

Das Hinzufügen in die config.inc.php-Datei hat bei mir funktioniert (unter der letzten $ cfg-Zeile):

$cfg['RowActionLinksWithoutUnique'] = 'true';

Die Datei sollte sich im Ordner phpMyAdmin auf Ihrem lokalen Computer befinden

0
snubbus