MySQL Workbench 5.2.37 でテーブル データを編集しようとすると、読み取り専用モードになります。
テーブルに主キーがある場合にのみ編集可能です。
主キーのないテーブルを処理するための修正はありますか??
ありがとう
提案の 1 つとして、WB 5.2.40 をアップグレードしてみました。しかし、それでもこの問題は存在します..誰か助けてください..
MySQL Workbench 5.2.37 でテーブル データを編集しようとすると、読み取り専用モードになります。
テーブルに主キーがある場合にのみ編集可能です。
主キーのないテーブルを処理するための修正はありますか??
ありがとう
提案の 1 つとして、WB 5.2.40 をアップグレードしてみました。しかし、それでもこの問題は存在します..誰か助けてください..
テーブルには主キーがあると仮定しています。まず、テーブルのロック解除コマンドを実行して、問題が解決するかどうかを確認してください。
他のすべてが失敗した場合は、テーブルを変更して、自動インクリメントを使用して新しい主キー列を作成できます。これで問題が解決することを願っています。完了したら、問題なく列を削除できるはずです。
いつものように、テーブルを変更する前にバックアップを作成する必要があります。:)
注: MySQL ワークベンチは、それが問題である場合、主キーがないと機能しません。ただし、多対多のテーブルがある場合は、両方の列を主キーとして設定して、データを編集できます。
DB 接続のデフォルト スキーマを設定すると、スキーマを明示的に設定するまで、Select は読み取り専用モードで実行されます。
USE mydb;
SELECT * FROM mytable
これは編集モードでも実行されます。
SELECT * FROM mydb.mytable
(MySql 5.2.42 / MacOSX)
これが役立つことを願っています。
これはMySQLWorkbench の既知の制限です (PK なしでテーブルを編集することはできません)。
方法 1: (方法が機能しない場合もあります)
オブジェクト ブラウザ内のテーブルを右クリックし、そこから [テーブル データの編集] オプションを選択します。
方法 2:
代わりに主キーを追加することをお勧めします。
ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`);
最初に既存の行を削除したい場合があります。
Truncate table your_table_name
mysql ワークベンチの「読み取り専用」アイコンにカーソルを合わせると、編集できない理由を説明するツールチップが表示されます。私の場合、主キーまたは一意のnull不可の列を持つテーブルのみを編集できます。
MySQL Workbench では、編集するために INDEX が必要ですが、PK である必要はありません (ただし、PK を追加することも解決策です)。
通常の INDEX または複合 INDEX を作成できます。MySQL WB が読み取り専用の問題を修正する必要があるのはこれだけです (MariaDB v. 10.1.4 で v. 6.2 を使用しています)。
テーブルを右クリックして、[Alter table...] を選択し、[Indexes] タブに移動します。左側のペインでインデックスのカスタム名を入力し、中央のペインで 1 つ (値が一意であることを確認してください) または複数のフィールド (組み合わせが一意であることを確認してください) にチェックマークを付けます。
このバグによると、Workbench 5.2.38 で問題が修正された人もいれば、おそらく 5.2.39 で修正された人もいます。最新バージョン (5.2.40) にアップグレードできますか?
または、次の方法で回避できます。
SELECT *,'' FROM my_table
マニトバの投稿に導かれて、私は別の解決策を見つけました。要約すると、ソリューションは次のとおりです。
USEコマンドを使用
USE mydb;
SELECT * FROM mytable
明示的なスキーマプレフィックスを使用する場合:
SELECT * FROM mydb.mytable
GUI
オブジェクトブラウザの[スキーマ]ペインで、同じ問題が発生した場合、最初はすべてのデータベースアイコンが強調表示されません。したがって、デフォルトにしたいデータベースアイコンを右クリックして、[デフォルトスキーマとして設定]を選択します。
クエリに JOIN がある場合、結果がすべて単一のテーブルからのものであっても、Mysql Workbench はテーブルを変更することを許可しません。
たとえば、次のクエリ
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;
その後、行を編集してテーブルに行を追加できます。