Как просмотреть список всех индексов (включая неявные) в SQL * Plus?
есть ли способ получить список всех индексов в конкретной таблице с помощью SQL * Plus?
Я создал таблицу
CREATE TABLE temp(
id NUMBER PRIMARY KEY,
name VARCHAR2(20));
должен быть неявный индекс, созданный на первичном ключе (id
). Как я могу видеть этот индекс?
SELECT * FROM all_indexes WHERE table_name = 'temp';
дает
нет выбранных строк
4 ответов
SELECT INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME = 'your_table
'
Примечание.: Если вы хотите ограничить поиск определенной схемой, вы также можете сделать:
SELECT INDEX_NAME FROM ALL_INDEXES WHERE TABLE_NAME = 'your_table' AND OWNER = 'your_owner'
это полезно в ситуациях, когда у вас может быть одно и то же имя таблицы в нескольких схемах.
кроме того, имейте в виду, что Oracle хранит имена таблиц в верхнем регистре, так что в вашем примере вам нужно сделать:
select * from all_indexes where table_name = 'TEMP';
пожалуйста, напишите ваше имя таблицы в верхнем регистре
или
SELECT * FROM all_indexes WHERE lower(table_name) = 'temp';
Если вы хотите отобразить всю индексацию в базе данных, вы можете попробовать.
use information_schema;
SELECT * FROM statistics;