Dữ liệu bảng chỉnh sửa MySQL Workbench chỉ được đọc


84

Khi thử Chỉnh sửa dữ liệu bảng trong MySQL Workbench 5.2.37, nó ở chế độ chỉ đọc.

Nó chỉ có thể chỉnh sửa nếu bảng có khóa chính.

Có cách nào khắc phục để đối phó với bảng không có khóa chính không ??

Cảm ơn

Như một trong những gợi ý, tôi đã thử nâng cấp WB 5.2.40. Nhưng vấn đề này vẫn tồn tại .. Bất kỳ ai có thể giúp đỡ ..


Không có gì trong câu hỏi gợi ý đang hoạt động. Tôi không thể thêm một cột sau đó xóa nó. Chuyển sang phpMyadmin là lựa chọn của tôi bây giờ.
ophidion

PK là bắt buộc, đây là Câu hỏi thường gặp liên quan - dev.mysql.com/doc/workbench/en/…
Philip Olson

Lỗi MySQL Workbench có thể có liên quan cho những người tìm thấy chuỗi này bằng tìm kiếm trên web: không thể chỉnh sửa lưới kết quả của lượt xem . Lưu ý rằng lỗi này chỉ liên quan đến các chế độ xem đáp ứng tất cả các ràng buộc khác được yêu cầu "có thể cập nhật " và có thể được sửa đổi bằng các truy vấn SQL đơn giản.
TheDudeAbides

Câu trả lời:


77

Tôi giả sử bảng có khóa chính. Trước tiên, hãy thử chạy lệnh mở khóa bảng để xem có khắc phục được không.

Nếu vẫn thất bại, bạn có thể thay đổi bảng để tạo một cột khóa chính mới với tính năng tự động tăng và điều đó hy vọng sẽ khắc phục được. Sau khi hoàn tất, bạn sẽ có thể xóa cột mà không gặp bất kỳ vấn đề nào.

Như mọi khi, bạn muốn tạo một bản sao lưu trước khi thay đổi các bảng xung quanh. :)

Lưu ý: Bàn làm việc MySQL không thể hoạt động mà không có khóa chính nếu đó là vấn đề của bạn. Tuy nhiên, nếu bạn có nhiều đến nhiều bảng, bạn có thể đặt cả hai cột làm khóa chính để cho phép bạn chỉnh sửa dữ liệu.


5
Trên thực tế, vấn đề của tôi là tôi không muốn có khóa chính trong bảng của mình. Vui lòng tham khảo câu trả lời khác cho câu hỏi này.
EscalinNancy

2
Tôi không nghĩ rằng những gì bạn làm là khả thi trong bàn làm việc MYSQL vì chương trình cần một khóa chính để chỉ ra hàng bạn muốn chỉnh sửa.
Thomas B,

Okie, cảm ơn Thomas. Tôi đã bao gồm khóa chính trong các bảng của mình.
EscalinNancy

Tôi đang sử dụng DBeaver và gặp phải vấn đề tương tự. Ngắt kết nối và kết nối lại đã giải quyết được nó!
lafleur

30

nếu bảng không có khóa chính hoặc duy nhất không thể nullable được xác định, thì MySql workbench không thể chỉnh sửa dữ liệu.


Tôi đoán không có giải pháp cho điều này.

14

Nếu bạn đặt lược đồ mặc định cho Kết nối DB của mình thì Chọn sẽ chạy ở chế độ chỉ đọc cho đến khi bạn đặt lược đồ của mình một cách rõ ràng

USE mydb;
SELECT * FROM mytable

điều này cũng sẽ chạy trong chế độ chỉnh sửa:

SELECT * FROM mydb.mytable 

(MySql 5.2.42 / MacOsX)

Tôi hi vọng cái này giúp được.


9

Đây là hạn chế đã biết trong MySQLWorkbench (bạn không thể chỉnh sửa bảng w / o PK):

Để chỉnh sửa bảng:

Phương pháp 1: (phương pháp không hoạt động trong một số trường hợp)
nhấp chuột phải vào bảng trong Trình duyệt Đối tượng và chọn tùy chọn Chỉnh sửa Dữ liệu Bảng từ đó.

Phương pháp 2:
Tôi khuyên bạn nên thêm Khóa chính Thay vào đó:

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

và bạn có thể muốn xóa các hàng hiện có trước:

Truncate table your_table_name

1
Các phiên bản mới hơn của MySQL Workbench (của tôi là 6.3) không có tùy chọn "Chỉnh sửa dữ liệu bảng".
JonP

6

Di chuột qua biểu tượng "chỉ đọc" trong bàn làm việc mysql sẽ hiển thị chú giải công cụ giải thích lý do tại sao không thể chỉnh sửa nó. Trong trường hợp của tôi, nó đã nói, chỉ có thể chỉnh sửa các bảng có khóa chính hoặc các cột không thể nullable duy nhất.


bạn nói đến biểu tượng này ở đâu?
Brad Kent

1
trả lời bản thân mình: đó là bên dưới và bên phải của kết quả trên bàn làm việc 6.3
Brad Kent

3

Trong MySQL Workbench, bạn cần một INDEX để chỉnh sửa, không cần nó phải là PK (mặc dù thêm PK cũng là một giải pháp).

Bạn có thể tạo INDEX thông thường hoặc INDEX kết hợp. Đó là tất cả những gì MySQL WB cần để sửa lỗi Chỉ đọc (tôi có phiên bản 6.2 với MariaDB v. 10.1.4):

Chỉ cần nhấp chuột phải vào bảng, chọn "Thay đổi bảng ..." rồi chuyển đến tab "Chỉ mục". Trong ngăn bên trái, hãy đặt một tên tùy chỉnh cho chỉ mục của bạn và trong ngăn giữa, hãy đánh dấu chọn một (đảm bảo rằng vale sẽ là duy nhất) hoặc nhiều trường (chỉ cần đảm bảo kết hợp là duy nhất)


3

Tôi đã gặp sự cố chỉ đọc ngay cả khi tôi đang chọn khóa chính. Cuối cùng tôi đã phát hiện ra đó là một vấn đề về vỏ bọc. Rõ ràng cột PK phải được viết tắt giống như được định nghĩa trong bảng. using: workbench 6.3 trên windows

Chỉ đọc

SELECT leadid, firstname, lastname, được tạo dữ liệu từ khách hàng tiềm năng;

Được phép chỉnh sửa

SELECT LeadID, firstname, lastname, được tạo dữ liệu từ khách hàng tiềm năng;


1

Theo lỗi này , sự cố đã được khắc phục trong Workbench 5.2.38 cho một số người và có lẽ 5.2.39 cho những người khác — bạn có thể nâng cấp lên phiên bản mới nhất (5.2.40) không?

Ngoài ra, có thể giải quyết bằng:

SELECT *,'' FROM my_table

Cảm ơn bạn đã phản hồi nhanh như vậy .. Alternate SELECT không hoạt động .. Nhưng tôi có thể nâng cấp .. Sẽ nâng cấp và kiểm tra nó .. Cảm ơn rất nhiều vdgyal ...
EscalinNancy

@EscalinNancy: Một người ở chỗ báo cáo lỗi nhận xét rằng một workaround thay thế là sử dụng một chức năng ví dụ SELECT *, CONCAT('','') FROM my_table. Có lẽ điều đó sẽ làm việc cho bạn?
eggyal

Không .. nó không hoạt động .. Tôi nhận được concat (''. '') Như một cột khác trong tập kết quả nhưng dữ liệu vẫn chỉ được đọc .. Hiện đang nâng cấp WB
EscalinNancy

@EscalinNancy: Tôi rất tiếc khi biết điều đó :( Có thể ai đó ở đây có thể hiểu rõ hơn vấn đề là gì - nhưng nhiều khả năng họ sẽ thấy câu hỏi này nếu bạn không chấp nhận câu trả lời của tôi.
eggyal

Đó là trường hợp tương tự trong 5.2.44. Cơ sở dữ liệu là một cơ sở dữ liệu hiệu quả và hoạt động tốt trong phiên bản trước của bàn làm việc.
Earth Engine

0

Được hướng dẫn bởi bài đăng của Manitoba, tôi đã tìm thấy một giải pháp khác. Tóm lại, các giải pháp là:

  1. Với lệnh USE

    USE mydb;
    SELECT * FROM mytable
    
  2. Với tiền tố lược đồ rõ ràng:

    SELECT * FROM mydb.mytable
    
  3. GUI

    Trên ngăn "SCHEMAS" của Trình duyệt Đối tượng, tất cả các biểu tượng cơ sở dữ liệu ban đầu không được đánh dấu nếu bạn gặp vấn đề tương tự. Vì vậy, bạn có thể nhấp chuột phải vào biểu tượng cơ sở dữ liệu bạn muốn làm mặc định, chọn "Đặt làm lược đồ mặc định".


0

1.) Bạn phải đặt khóa chính là duy nhất thì bạn mới có thể chỉnh sửa.

nhấp chuột phải vào bảng của bạn trong lược đồ "màu xanh" -> BẢNG ALTER, tìm khóa mồi (PK) của bạn, sau đó chỉ cần đánh dấu vào hộp kiểm UN, AI đã được chọn. Sau đó, chỉ cần áp dụng và bạn sẽ có thể chỉnh sửa dữ liệu bảng.

2.) Bạn cũng cần bao gồm khóa cơ bản I câu lệnh chọn của bạn

Nr 1 không thực sự cần thiết, nhưng là một thực hành tốt.


0

Nếu truy vấn của bạn có bất kỳ THAM GIA nào, Mysql Workbench sẽ không cho phép bạn thay đổi bảng, ngay cả khi kết quả của bạn là tất cả từ một bảng.

Ví dụ, truy vấn sau

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

sẽ không cho phép bạn chỉnh sửa kết quả hoặc thêm hàng, mặc dù kết quả được giới hạn trong một bảng. Bạn phải đặc biệt làm một số việc như:

SELECT * FROM users WHERE id=1012;

và sau đó bạn có thể chỉnh sửa hàng và thêm hàng vào bảng.


Tôi không hiểu tại sao truy vấn đầu tiên không hoạt động, nhưng ít nhất truy vấn sau hoạt động. Bạn có thể chỉnh sửa hoạt động của truy vấn sau. SELECT u.* FROM users u WHERE u.id IN (SELECT user_id FROM passwords WHERE p.password IS NULL);
twk

0

nhập mô tả hình ảnh ở đây

Bỏ chọn dấu kiểm đã đánh dấu, nó sẽ cho phép chỉnh sửa lưới


0

MySQL sẽ chạy ở chế độ Chỉ đọc khi bạn tìm nạp bằng cách nối hai bảng và các cột từ hai bảng được đưa vào kết quả. Sau đó, bạn không thể cập nhật các giá trị trực tiếp.


0

Có, tôi thấy MySQL cũng không thể chỉnh sửa bảng kết quả. Thông thường các bảng kết quả tham gia các bảng khác không có khóa chính. Tôi nghe những người khác đề xuất đặt bảng kết quả trong một bảng khác, nhưng giải pháp tốt hơn là sử dụng Dbeaver có thể chỉnh sửa bảng kết quả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.