Lorsque vous essayez d’éditer des données de table dans MySQL Workbench 5.2.37, il est en lecture seule.
Il n'est éditable que si la table a une clé primaire.
Existe-t-il un correctif pour traiter avec table sans clé primaire?
Merci
Parmi les suggestions, j'ai essayé de mettre à jour WB 5.2.40. Mais ce problème existe toujours ... Quelqu'un pourrait-il vous aider?.
Je suppose que la table a une clé primaire. Commencez par essayer d’exécuter une commande unlock tables pour voir si cela résout le problème.
Si tout échoue, vous pouvez modifier la table pour créer une nouvelle colonne de clé primaire avec incrémentation automatique, ce qui devrait, espérons-le, résoudre le problème. Une fois que vous avez terminé, vous devriez pouvoir supprimer la colonne sans aucun problème.
Comme toujours, vous voulez faire une sauvegarde avant de modifier les tables. :)
Remarque: MySQL Workbench ne peut pas fonctionner sans clé primaire si tel est votre problème. Toutefois, si vous avez plusieurs tables, vous pouvez définir les deux colonnes comme clés primaires, ce qui vous permettra de modifier les données.
si la table n'a pas de clé primaire ni de paramètre unique non nullable défini, MySql Workbench ne peut pas modifier les données.
Si vous définissez un schéma par défaut pour votre connexion à la base de données, Select sera exécuté en mode lecture seule jusqu'à ce que vous définissiez explicitement votre schéma.
USE mydb;
SELECT * FROM mytable
cela fonctionnera également en mode édition:
SELECT * FROM mydb.mytable
(MySql 5.2.42/MacOsX)
J'espère que ça aide.
Il s’agit du limitation connue dans MySQLWorkbench (vous ne pouvez pas éditer de table sans PK):
Méthode 1: (la méthode ne fonctionne pas dans certains cas)
Cliquez avec le bouton droit de la souris sur une table dans le navigateur d’objets et choisissez l’option Editer les données de la table à partir de là.
Méthode 2:
Je vous conseillerais plutôt d’ajouter la clé primaire à la place:
ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);
et vous voudrez peut-être d'abord supprimer les lignes existantes:
Truncate table your_table_name
Dans MySQL Workbench, vous avez besoin d'un INDEX pour le modifier, pas besoin d'être PK (bien que l'ajout d'un PK soit également une solution).
Vous pouvez créer un INDEX ou un INDEX composé. C'est tout ce dont MySQL WB a besoin pour résoudre le problème de lecture seule (j'ai la v. 6.2 avec MariaDB v. 10.1.4):
Cliquez avec le bouton droit de la souris sur la table, sélectionnez "Modifier la table ...", puis cliquez sur l'onglet "Index". Dans le volet de gauche, indiquez un nom personnalisé pour votre index et dans le volet du milieu, cochez-le (assurez-vous que la valeur sera unique) ou plusieurs champs (assurez-vous simplement que la combinaison est unique).
En survolant l'icône "lecture seule" dans mysql workbench, une info-bulle explique pourquoi elle ne peut pas être modifiée. Dans mon cas, il est dit que seules les tables avec des clés primaires ou des colonnes uniques non nullables peuvent être modifiées.
Selon ce bug , le problème a été résolu dans Workbench 5.2.38 pour certaines personnes et peut-être 5.2.39 pour d'autres - pouvez-vous mettre à niveau vers la dernière version (5.2.40)?
Alternativement, il est possible de contourner le problème avec:
SELECT *,'' FROM my_table
Je rencontrais le problème en lecture seule même lorsque je sélectionnais la clé primaire. J'ai finalement compris qu'il s'agissait d'un problème de boîtier. Apparemment, la colonne PK doit avoir la même casse que celle définie dans le tableau. using: workbench 6.3 sur Windows
Lecture seulement
SELECT leadid, prenom, nom de famille, date de création de lead;
Édition autorisée
SELECT LeadID, prénom, nom, date de création de lead;
1.) Vous devez rendre la clé primaire unique, vous devriez alors pouvoir l'éditer.
faites un clic droit sur votre table dans les schémas "bleus" -> ALTER TABLE, recherchez votre clé primitive (PK), puis cochez simplement la case à cocher, UN, l'IA doit déjà être cochée. Ensuite, appliquez simplement et vous devriez pouvoir modifier les données de la table.
2.) Vous devez également inclure la clé primaire de votre déclaration select
N ° 1 n'est pas vraiment nécessaire, mais une bonne pratique.
Si votre requête a des jointures, Mysql Workbench ne vous permettra pas de modifier la table, même si vos résultats proviennent tous d'une seule table.
Par exemple, la requête suivante
SELECT u.* FROM users u JOIN passwords p ON u.id=p.user_id WHERE p.password IS NULL;
ne vous autorisera pas à modifier les résultats ni à ajouter des lignes, même si les résultats sont limités à une seule table. Vous devez spécifiquement faire quelque chose comme:
SELECT * FROM users WHERE id=1012;
et ensuite vous pouvez éditer la ligne et ajouter des lignes à la table.
Guidé par le message du Manitoba, j'ai trouvé une autre solution. En résumé, les solutions sont les suivantes:
Avec une commande USE
USE mydb;
SELECT * FROM mytable
Avec un préfixe de schéma explicite:
SELECT * FROM mydb.mytable
Interface graphique
Dans le volet "SCHEMAS" du navigateur d'objets, toutes les icônes de base de données ne sont initialement pas mises en surbrillance si vous rencontrez le même problème. Pour que vous puissiez cliquer avec le bouton droit sur l’icône de la base de données que vous voulez utiliser par défaut, sélectionnez "Définir comme schéma par défaut".