Resolución: esta tabla no contiene una columna única. Las funciones de edición de cuadrícula, checkbox, edición, copia y eliminación no están disponibles

Esta no es una pregunta sino un problema / pregunta y una solución autogenerados que encontré trabajando. Pensé que sería una cortesía decente para compartir, ya que no había una solución de trabajo completa que pudiera encontrar.

El error generado en phpMyAdmin es:

“Esta tabla no contiene una columna única. Las funciones de edición de cuadrícula, checkbox, edición, copia y eliminación no están disponibles”.

Hay varias soluciones de trabajo dependiendo de su escenario exacto.

Por ejemplo, siempre que todos los campos de identificador único o AI sean únicos, simplemente puede modificar la tabla y asegurarse de que sea la clave principal y establecerla en un valor único.

Lo resolví con esta solución en una de mis mesas.

La otra tabla tenía múltiples valores de AI int que eran el campo Primario, pero había múltiples valores del mismo tipo.

La solución simple para esto era simplemente agregar una columna al final de la tabla como Unique AI Int. Básicamente, todo lo que MySQL dice es que necesita un valor único en cada registro para diferenciar las filas.

Espero que esto haya sido útil.

Me he enfrentado a este problema.

La causa es que su tabla no tiene un campo de clave principal .

Y tengo una solución simple: establezca un campo como clave principal para archivos específicos que se adapten a su lógica comercial.

Por ejemplo, tengo la base de datos thesis_db y field thesis_id , presionaré el botón Primary (icono de la llave) para establecer que thesis_id convierta en el campo de la clave principal:

enter image description here

Esto no es un error. PhpMyAdmin acaba de informarle que no hay una columna de ID única en su conjunto de resultados. Según el tipo de consulta que envíe, este es el comportamiento deseado.

No es MySQL que dice que necesita una ID única, si cualquier combinación de las columnas en su conjunto de resultados es única, los valores de esas columnas se pueden usar en una consulta ACTUALIZACIÓN o ELIMINACIÓN. Es phpMyAdmin el que dice que no tiene suficiente información para ofrecerle las casillas de verificación y botones que normalmente verá en un conjunto de resultados con una ID única.

Mi caso es diferente Este problema solo es específico de PHPMyAdmin. Descargué otras dos herramientas de administración (Adminer, MySQLWorkbench, HeidiSQL, etc.) y el mismo db funciona bien en todas.

Tengo todos los índices, la clave principal y las claves únicas definidas y todavía recibo el error. Lo entiendo después de actualizar a MySQL 5.6 (no tenía el mismo aspecto que las versiones anteriores).

Resulta que PMA tiene problemas con los nombres de tabla en mayúscula. PMA no puede reconocer claves con los nombres de tabla de mayúsculas. Una vez que los cambio a pequeños ( ALTER TABLE mytable ENGINE=INNODB – Yo uso INNODB – hace eso para cada tabla sin cambiar nada más), pude acceder normalmente. Estoy en un sistema Windows con UniformServer.

Simplemente cree una nueva columna, establezca el Name a su gusto, establezca el Type en INT y marque la casilla que dice A_I .

diagrama La checkbox A_I representa AUTO_INCREMENT , lo que significa esencialmente que los números de secuencia se asignan automáticamente en esa nueva columna (ver a continuación).

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

Esta columna esencialmente actúa como una referencia para phpMyAdmin para eliminar filas de. Si es necesario, haga clic en el botón exclusivo para esta nueva columna, aunque esto sucedió automáticamente. Después de seguir los pasos anteriores, ya no deberías tener el mensaje de error y deberían aparecer los botones para editar filas en phpMyAdmin.

En mi caso, el error ocurrió en phpmyadmin versión 4.5.1 cuando configuré low_case_table_names = 2 y tenía un nombre de tabla con caracteres en mayúscula. La tabla tenía una clave principal configurada para incrementar automáticamente pero aún mostraba el error. El problema se detuvo cuando cambié el nombre de la tabla a minúsculas.

Hace poco tuve el mismo problema y, después de buscar duplicados, pude solucionarlo simplemente configurando (faltando) la clave principal en la tabla. Espero que esto pueda ayudar

Esta pregunta me ayudó a identificar el problema de por qué phpMyAdmin me rechazó grid-edit-etc. en algunas tablas Me olvidé de declarar mi clave principal y la estaba supervisando en mi proceso de búsqueda de soluciones “¿Por qué diablos debería ser esta mesa diferente de la de sus vecinos?

Solo quería reactjsr siguiendo en OP auto-respuesta:

La otra tabla tenía múltiples valores de AI int que eran el campo Primario, pero había múltiples valores del mismo tipo.

La solución simple para esto era simplemente agregar una columna al final de la tabla como Unique AI Int. Básicamente, todo lo que MySQL dice es que necesita un valor único en cada registro para diferenciar las filas.

Este era en realidad mi caso, pero no hay necesidad de agregar ninguna columna: si su clave principal es la combinación de 2 campos (por ejemplo, tabla de unión en una relación de muchos a muchos), simplemente declare como tal:
– eiter en phpyAdmin, solo ingrese “2” en “Crear un índice en [x] columnas”, luego seleccione sus 2 columnas
– o ALTER TABLE mytable ADD PRIMARY KEY(mycol1,mycol2)

Recibí este error al intentar modificar directamente después de ejecutar Query. Resulta que, después de hacer una vista desde esa misma consulta exacta, pude modificar los valores.

Una solución fácil a esto sería ir a la pestaña SQL y simplemente poner el código

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

Asumiendo que tienes una fila llamada id.

Me enfrenté al mismo problema cada vez que estoy disparando la consulta SELECT con columnas específicas, aunque la de la columna es primaria en la tabla. Estaba tratando de obtener registros selectivos con columnas selectivas en la tabla estándar de “mensajes” de WordPress. La columna ID ya es primaria y única.

El solo hecho de especificar el nombre de la columna primaria / única no resolverá este problema. Debe especificar el nombre completo de columna como “posts.id” (nombre de tabla.nombrecolumna) que le dice a PMA que seleccione una columna específica y revele la edición, etc.

Mi PMA es 4.3.8. Déjeme saber si esto ayuda..