Los datos de la tabla de edición de MySQL Workbench son de solo lectura


84

Al intentar Editar datos de tabla en MySQL Workbench 5.2.37, está en modo de solo lectura.

Solo se puede editar si la tabla tiene una clave principal.

¿Hay alguna solución para tratar con la tabla sin clave principal?

Gracias

Como una de las sugerencias, intenté actualizar WB 5.2.40. Pero aún existe este problema ... ¿Podría alguien ayudar por favor ...?


Nada de la pregunta sugerida está funcionando. No puedo agregar una columna y luego eliminarla. Pasar a phpMyadmin es mi elección ahora.
ophidion

Se requiere el PK, aquí hay una pregunta frecuente relacionada: dev.mysql.com/doc/workbench/en/…
Philip Olson

Posiblemente un error de MySQL Workbench relevante para las personas que encontraron este hilo con una búsqueda web: las cuadrículas de resultados de las vistas no son editables . Tenga en cuenta que este error solo se aplica a las vistas que cumplen con todas las demás restricciones necesarias para ser " actualizables " y se pueden modificar con consultas SQL directas.
TheDudeAbides

Respuestas:


77

Supongo que la tabla tiene una clave principal. Primero intente ejecutar un comando de desbloqueo de tablas para ver si eso lo soluciona.

Si todo lo demás falla, puede modificar la tabla para crear una nueva columna de clave principal con incremento automático y, con suerte, eso debería solucionarlo. Una vez que haya terminado, debería poder eliminar la columna sin ningún problema.

Como siempre, desea hacer una copia de seguridad antes de modificar las tablas. :)

Nota: MySQL workbench no puede funcionar sin una clave principal si ese es su problema. Sin embargo, si tiene una tabla de muchos a muchos, puede establecer ambas columnas como claves primarias, lo que le permitirá editar los datos.


5
En realidad, mi problema es en sí mismo que no quiero tener una clave principal en mi tabla. Consulte la otra respuesta para esta pregunta.
EscalinNancy

2
No creo que lo que haces sea posible en MYSQL workbench, ya que el programa necesita una clave principal para señalar qué fila quieres editar.
Thomas B

Okie, gracias Thomas. He incluido la clave principal en mis tablas.
EscalinNancy

Estaba usando DBeaver y enfrenté el mismo problema. ¡Desconectar y conectar de nuevo lo solucionó!
lafleur

31

Si la tabla no tiene una clave principal o una única no anulable definida, entonces MySql workbench no podría editar los datos.


Supongo que no hay solución para esto.

14

Si establece un esquema predeterminado para su conexión de base de datos, Select se ejecutará en modo de solo lectura hasta que establezca explícitamente su esquema

USE mydb;
SELECT * FROM mytable

esto también se ejecutará en modo de edición:

SELECT * FROM mydb.mytable 

(MySql 5.2.42 / MacOsX)

Espero que esto ayude.


9

Esta es la limitación conocida en MySQLWorkbench (no puede editar la tabla sin PK):

Para editar la tabla:

Método 1: (el método no funciona en algunos casos)
haga clic con el botón derecho en una tabla dentro del Explorador de objetos y elija la opción Editar datos de tabla desde allí.

Método 2:
prefiero sugerirle que agregue la clave principal en su lugar:

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

y es posible que desee eliminar las filas existentes primero:

Truncate table your_table_name

1
Las versiones más recientes de MySQL Workbench (la mía es 6.3) no tienen la opción "Editar datos de la tabla".
JonP

6

Al pasar el cursor sobre el icono de "solo lectura" en mysql workbench, se muestra una información sobre herramientas que explica por qué no se puede editar. En mi caso, decía, solo se pueden editar las tablas con claves primarias o columnas únicas que no aceptan valores NULL.


¿Dónde está este icono del que hablas?
Brad Kent

1
respondiéndome a mí mismo: está debajo y a la derecha de los resultados en el banco de trabajo 6.3
Brad Kent

3

En MySQL Workbench, necesita un ÍNDICE para editar, no es necesario que sea PK (aunque agregar un PK también es una solución).

Puede hacer un INDICE regular o un INDICE compuesto. Eso es todo lo que MySQL WB necesita para solucionar el problema de solo lectura (tengo v. 6.2 con MariaDB v. 10.1.4):

Simplemente haga clic derecho en la tabla, seleccione "Modificar tabla ..." y luego vaya a la pestaña "Índices". En el panel izquierdo, coloque un nombre personalizado para su índice, y en el panel central marque uno (asegúrese de que el valor sea único) o más campos (solo asegúrese de que la combinación sea única)


3

Estaba teniendo el problema de solo lectura incluso cuando estaba seleccionando la clave principal. Eventualmente descubrí que era un problema de carcasa. Aparentemente, la columna PK debe estar en mayúsculas y minúsculas de la misma manera que se define en la tabla. usando: Workbench 6.3 en Windows

Solo lectura

SELECCIONE ID de plomo, nombre, apellido, fecha de creación DESDE el cliente potencial;

Edición permitida

SELECCIONE ID de cliente potencial, nombre, apellido, fecha de creación DESDE el cliente potencial;


1

De acuerdo con este error , el problema se solucionó en Workbench 5.2.38 para algunas personas y quizás 5.2.39 para otras. ¿Se puede actualizar a la última versión (5.2.40)?

Alternativamente, es posible solucionarlo con:

SELECT *,'' FROM my_table

Gracias por una respuesta tan rápida ... Alternate SELECT no funciona ... Pero puedo actualizar ... Lo actualizaré y lo comprobaré ... Muchas gracias eggyal ...
EscalinNancy

@EscalinNancy: Otra persona en ese informe de error comentó que una solución alternativa es usar una función, por ejemplo SELECT *, CONCAT('','') FROM my_table. ¿Quizás eso funcione para usted?
eggyal

No ... no funciona ... Estoy obteniendo concat (''. '') Como otra columna en el conjunto de resultados, pero aún así los datos son de solo lectura ... Ahora estoy actualizando WB
EscalinNancy

@EscalinNancy: Lamento escuchar eso :( Es posible que alguien más aquí tenga una idea más clara de cuál es el problema, pero es más probable que vean esta pregunta si no aceptas mi respuesta.
eggyal

Es el mismo caso en 5.2.44. La base de datos es productiva y funciona bien en la versión anterior de Workbench.
Earth Engine

0

Guiado por la publicación de Manitoba, encontré otra solución. Como resumen, las soluciones son:

  1. Con un comando USE

    USE mydb;
    SELECT * FROM mytable
    
  2. Con un prefijo de esquema explícito:

    SELECT * FROM mydb.mytable
    
  3. GUI

    En el panel "ESQUEMAS" del Explorador de objetos, todos los iconos de la base de datos inicialmente no están resaltados si tiene el mismo problema. Para que pueda hacer clic con el botón derecho en el icono de la base de datos que desea que sea el predeterminado, seleccione "Establecer como esquema predeterminado".


0

1.) Tiene que hacer que la clave principal sea única, entonces debería poder editarla.

haga clic derecho en su tabla en los esquemas "azules" -> ALTER TABLE, busque su clave principal (PK), luego marque la casilla de verificación, UN, la IA ya debería estar marcada. Después de eso, simplemente aplique y debería poder editar los datos de la tabla.

2.) También debe incluir la clave básica en su declaración de selección

El número 1 no es realmente necesario, pero es una buena práctica.


0

Si su consulta tiene JOIN, Mysql Workbench no le permitirá alterar la tabla, incluso si sus resultados son todos de una sola tabla.

Por ejemplo, la siguiente consulta

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

no le permitirá editar los resultados o agregar filas, aunque los resultados se limitan a una tabla. Debe hacer específicamente algo como:

SELECT * FROM users WHERE id=1012;

y luego puede editar la fila y agregar filas a la tabla.


No entiendo por qué la primera consulta no funciona, pero al menos la siguiente consulta funciona. Podrías editar la siguiente consulta. SELECT u.* FROM users u WHERE u.id IN (SELECT user_id FROM passwords WHERE p.password IS NULL);
twk

0

ingrese la descripción de la imagen aquí

Desmarque la marca de verificación, habilitará la edición de la cuadrícula


0

MySQL se ejecutará en modo de solo lectura cuando recupere uniendo dos tablas y las columnas de dos tablas se incluyen en el resultado. Entonces no puede actualizar los valores directamente.


0

Sí, encontré que MySQL tampoco puede editar tablas de resultados. Por lo general, las tablas de resultados que se unen a otras tablas no tienen claves principales. Escuché que otros sugirieron colocar la tabla de resultados en otra tabla, pero la mejor solución es usar Dbeaver, que puede editar tablas de resultados.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.