MySQL Workbench 5.2.37でテーブルデータの編集を試みると、読み取り専用モードになります。
テーブルに主キーがある場合にのみ編集可能です。
主キーのないテーブルを処理するための修正はありますか?
ありがとう
提案の1つとして、WB5.2.40をアップグレードしてみました。しかし、それでもこの問題は存在します。誰か助けてください。
MySQL Workbench 5.2.37でテーブルデータの編集を試みると、読み取り専用モードになります。
テーブルに主キーがある場合にのみ編集可能です。
主キーのないテーブルを処理するための修正はありますか?
ありがとう
提案の1つとして、WB5.2.40をアップグレードしてみました。しかし、それでもこの問題は存在します。誰か助けてください。
回答:
テーブルに主キーがあると仮定しています。まず、テーブルのロック解除コマンドを実行して、問題が解決するかどうかを確認します。
他のすべてが失敗した場合は、テーブルを変更して自動インクリメントを使用して新しい主キー列を作成できます。これで修正されるはずです。完了したら、問題なく列を削除できるはずです。
いつものように、テーブルを変更する前にバックアップを作成する必要があります。:)
注:それが問題である場合、MySQLワークベンチは主キーなしでは機能しません。ただし、多対多のテーブルがある場合は、両方の列を主キーとして設定して、データを編集できます。
これはMySQLWorkbenchの既知の制限です(PKなしでテーブルを編集することはできません):
方法1 :( メソッドが機能しない
場合があります)オブジェクトブラウザ内のテーブルを右クリックし、そこから[テーブルデータの編集]オプションを選択します。
方法2:
代わりに主キーを追加することをお勧めします。
ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);
最初に既存の行を削除することをお勧めします。
Truncate table your_table_name
MySQL Workbenchでは、編集するためにINDEXが必要ですが、PKである必要はありません(PKの追加も解決策ですが)。
通常のINDEXまたは複合INDEXを作成できます。MySQL WBが読み取り専用のものを修正するために必要なのはこれだけです(私はv。6.2とMariaDBv。10.1.4を持っています):
テーブルを右クリックし、[テーブルを変更...]を選択して、[インデックス]タブに移動します。左側のペインにインデックスのカスタム名を入力し、中央のペインに1つ(値が一意であることを確認)または複数のフィールド(組み合わせが一意であることを確認)にチェックマークを付けます。
SELECT *, CONCAT('','') FROM my_table
。おそらくそれはあなたのために働くでしょうか?
クエリにJOINがある場合、結果がすべて単一のテーブルからのものであっても、MysqlWorkbenchではテーブルを変更できません。
たとえば、次のクエリ
SELECT u.* FROM users u JOIN passwords p ON u.id=p.user_id WHERE p.password IS NULL;
結果が1つのテーブルに制限されている場合でも、結果を編集したり行を追加したりすることはできません。具体的には、次のようなことを行う必要があります。
SELECT * FROM users WHERE id=1012;
次に、行を編集してテーブルに行を追加できます。
SELECT u.* FROM users u WHERE u.id IN (SELECT user_id FROM passwords WHERE p.password IS NULL);
2つのテーブルを結合してフェッチすると、MySQLは読み取り専用モードで実行され、2つのテーブルの列が結果に含まれます。その場合、値を直接更新することはできません。