Tôi cần Google vài lần, vì vậy tôi đang chia sẻ câu hỏi của mình.Làm cách nào để kiểm tra xem một chỉ mục tồn tại trên một trường bảng trong MySQL?
Trả lời
Sử dụng SHOW INDEX
như vậy:
SHOW INDEX FROM [tablename]
Documents: https://dev.mysql.com/doc/refman/5.0/en/show-index.html
HIỂN THỊ INDEX TỪ 'my_table' WHERE Key_name = 'index_to_check'; – mit
Sử dụng tốt hơn Column_name thay vì Key_name, theo cách này bạn không cần phải tìm ra tên chỉ mục nếu nó được tự động thêm mà không có tên. – Programista
Cách kiểm tra nhiều phím? – berserk
để chỉ cần nhìn vào một cách bố trí bảng biểu từ các cli. Bạn sẽ làm
desc mytable
hoặc
chương trình bảng mytable
Hãy thử:
SELECT * FROM information_schema.statistics
WHERE table_schema = [DATABASE NAME]
AND table_name = [TABLE NAME] AND column_name = [COLUMN NAME]
Nó sẽ cho bạn biết tôi f có chỉ mục thuộc bất kỳ loại nào trên một cột nhất định mà không cần biết tên được chỉ định cho chỉ mục. Nó cũng sẽ làm việc trong một thủ tục lưu trữ (như trái ngược với hiển thị chỉ số)
SHOW KEYS FROM tablename WHERE Key_name='unique key name'
bạn có thể tìm thấy nếu có tồn tại một khóa duy nhất trong bảng
show index from table_name where Column_name='column_name';
Bạn không thể chạy một số chương trình cụ thể truy vấn vì nó sẽ ném một lỗi nếu một chỉ mục không tồn tại. Vì vậy, bạn phải lấy tất cả các chỉ mục vào một mảng và lặp qua chúng nếu bạn muốn tránh bất kỳ lỗi SQL nào.
Heres cách tôi thực hiện. Tôi lấy tất cả các chỉ mục từ bảng (trong trường hợp này là leads
) và sau đó, trong vòng lặp foreach, kiểm tra xem tên cột (trong trường hợp này là province
) có tồn tại hay không.
$this->name = 'province';
$stm = $this->db->prepare('show index from `leads`');
$stm->execute();
$res = $stm->fetchAll();
$index_exists = false;
foreach ($res as $r) {
if ($r['Column_name'] == $this->name) {
$index_exists = true;
}
}
Bằng cách này bạn thực sự có thể thu hẹp các thuộc tính chỉ mục. Thực hiện một số print_r
của $res
để xem bạn có thể làm việc gì.
bạn có thể sử dụng câu lệnh SQL sau để kiểm tra cột nhất định trên bảng được lập chỉ mục hay không
select a.table_schema, a.table_name, a.column_name, index_name
from information_schema.columns a
join information_schema.tables b on a.table_schema = b.table_schema and
a.table_name = b.table_name and
b.table_type = 'BASE TABLE'
left join (
select concat(x.name, '/', y.name) full_path_schema, y.name index_name
FROM information_schema.INNODB_SYS_TABLES as x
JOIN information_schema.INNODB_SYS_INDEXES as y on x.TABLE_ID = y.TABLE_ID
WHERE x.name = 'your_schema'
and y.name = 'your_column') d on concat(a.table_schema, '/', a.table_name, '/', a.column_name) = d.full_path_schema
where a.table_schema = 'your_schema'
and a.column_name = 'your_column'
order by a.table_schema, a.table_name;
kể từ khi gia nhập là chống lại INNODB_SYS_ *, vì vậy các chỉ số trận đấu chỉ đến từ chỉ bảng InnoDB
Sử dụng các tuyên bố sau: SHOW INDEX TỪ your_table
Và sau đó kiểm tra kết quả cho các lĩnh vực: row [ "Table"], row [ "KEY_NAME"]
Đảm bảo bạn viết "Key_name" chính xác
- 1. Kiểm tra xem bảng có tồn tại trên MySQL
- 2. Làm thế nào để bạn kiểm tra xem một chỉ mục nào đó có tồn tại trong một bảng không?
- 3. Làm cách nào để kiểm tra xem một trường có tồn tại hay không trong MongoDB?
- 4. Làm cách nào để kiểm tra xem cột bảng mysql có còn tồn tại không?
- 5. Cách tốt nhất để kiểm tra nếu một hàng tồn tại trong bảng MySQL
- 6. RavenDb kiểm tra xem chỉ mục có tồn tại
- 7. Kiểm tra xem bảng có tồn tại
- 8. Truy vấn để kiểm tra chỉ mục trên một bảng
- 9. Kiểm tra xem bảng có tồn tại trong C#
- 10. Truy vấn để kiểm tra xem trình kích hoạt có tồn tại trên bảng MYSQL
- 11. Làm cách nào để kiểm tra xem một phần tử có tồn tại trong một Tập hợp các mục không?
- 12. Typescript - Cách kiểm tra xem một chỉ mục mảng có tồn tại không?
- 13. Làm cách nào để kiểm tra xem bảng có tồn tại trong API sqlite3 C++ không?
- 14. Làm thế nào để kiểm tra xem một phần tử trong mảng tồn tại trong Java
- 15. Kiểm tra xem một đối tượng tồn tại trong VBScript
- 16. làm thế nào để kiểm tra xem đối tượng đã tồn tại trong một danh sách
- 17. Kiểm tra xem một thư mục có tồn tại (và tạo thư mục) trong Qt, C++
- 18. Cách kiểm tra xem tệp có tồn tại trong một thư mục trong thẻ sd
- 19. Làm cách nào để kiểm tra xem một nút XML nhất định có tồn tại không?
- 20. Cách kiểm tra xem tệp có tồn tại trong một thư mục không?
- 21. Prolog: Làm cách nào để kiểm tra xem một biến vị ngữ có tồn tại không?
- 22. Kiểm tra xem người dùng mysql có tồn tại
- 23. Một cách để kiểm tra xem khóa ngoài tồn tại trong SQL 2005
- 24. Kiểm tra xem chỉ có một phần tử tồn tại bằng cách sử dụng Guava
- 25. Làm thế nào để kiểm tra xem một nguồn tài nguyên tồn tại trong Android
- 26. Có cách nào để kiểm tra xem một thư mục có tồn tại trong các tệp cấu hình Apache không?
- 27. Kiểm tra xem bảng truy cập có tồn tại không
- 28. Làm cách nào để kiểm tra xem một đối tượng có tồn tại ở một chỉ mục nào đó của NSMutableArray không?
- 29. Kiểm tra xem một webservice có tồn tại
- 30. collation kiểm tra mysql của một bảng
Cách kiểm tra nhiều phím? – berserk