2010-07-12 36 views
14

Có cách nào thông qua truy vấn MySQL để lấy các bảng bị khóa không? Tôi có một ứng dụng chạy luồng C# đang chạy và có rất nhiều bảng bị khóa trong ứng dụng.Nhận các bảng bị khóa trong truy vấn mysql

Tôi cần xem các bảng đã khóa và phân tích mã có thể khóa nó.

Trả lời

44

Sử dụng:

SHOW OPEN TABLES 

Một kiểm tra xem cột In_use lớn hơn 0. Trong trường hợp đó, bảng bị khóa.

Ví dụ

  • Danh sách bảng khóa:

    show open tables WHERE In_use > 0

  • Kiểm tra xem bảng tb_employees bị khóa hay không:

    show open tables WHERE Table LIKE 'tb_employees' AND In_use > 0

Từ official documentation:

In_use

Số lượng ổ khóa bảng hoặc khóa yêu cầu có cho bảng. Ví dụ, nếu một khách hàng có được một khóa cho một bảng sử dụng KHÓA TABLE t1 VIẾT, In_use sẽ được 1. Nếu một vấn đề khách hàng KHÓA TABLE t1 VIẾT khi bàn vẫn bị khóa, client sẽ chặn chờ đợi khóa, nhưng yêu cầu khóa gây ra In_use là 2. Nếu số đếm là 0, bảng đang mở nhưng hiện tại không sử dụng . In_use cũng được tăng thêm bởi HANDLER ... Câu lệnh OPEN và giảm bởi HANDLER ... ĐÓNG.

+0

Cảm ơn cristian, có vẻ hoàn hảo. – Sharpeye500

Các vấn đề liên quan