Có cách nào để làm mới bảng thuộc tính của một lớp sau khi chỉnh sửa bảng (ví dụ: thêm một cột) trong Trình quản lý DB không?
Có cách nào để làm mới bảng thuộc tính của một lớp sau khi chỉnh sửa bảng (ví dụ: thêm một cột) trong Trình quản lý DB không?
Câu trả lời:
Ngắn và ngọt:
Change vector datasource
.OK
mà không thay đổi bất kỳ cài đặt nào.Về cơ bản, bạn đang "thay đổi" nguồn dữ liệu vectơ thành nguồn gốc, nhưng điều này buộc QGIS phải tải lại định nghĩa lớp.
Đã thử nghiệm trong QGIS 2.14 trên Linux Mint 17.2.
Giả sử rằng bạn đang làm việc với cơ sở dữ liệu PostGIS, bạn có thể cập nhật số liệu thống kê của bảng quan tâm bằng cách sử dụng ANALYSE
hàm:
http://www.postgresql.org/docs/civerse/static/sql-analyze.html
Trong trường hợp của bạn, bạn có thể thực thi câu lệnh bên trong trình quản lý DB bằng cách nhấn nút được đánh dấu trong hình ảnh đính kèm và thực hiện ANALYSE
câu lệnh trong cửa sổ, cũng được đánh dấu. Truy vấn sẽ là ANALYSE yourschema.yourtable
. Lệnh phân tích sẽ cập nhật bảng của bạn, để khi bạn truy cập lại thông tin, nó sẽ phản ánh những thay đổi bạn đã thực hiện.
Tôi có hiểu rõ nếu bạn muốn làm mới bảng trong QGIS sau khi thay đổi các cột được thực hiện không?
Theo tôi biết, chỉ cần đóng và mở dự án hoặc thêm lại bảng sẽ làm điều này xảy ra. Miễn là bạn đã lưu kiểu mặc định trong cơ sở dữ liệu có thể là cách nhanh nhất.
Khi một cột được thêm vào Máy tính trường, các thay đổi sẽ hiển thị ngay lập tức nhưng trình quản lý DB cung cấp nhiều quyền kiểm soát hơn trong việc xác định loại trường để tôi hiểu tại sao đó có thể không phải là giải pháp.
layer.dataProvider().forceReload()
nên thực hiện mánh khóe