SQL * Plusを使用して特定のテーブルのすべてのインデックスのリストを取得する方法はありますか?
テーブルを作成しました
CREATE TABLE temp(
id NUMBER PRIMARY KEY,
name VARCHAR2(20));
主キー(id
)に暗黙のインデックスが作成されている必要があります。そのインデックスを確認するにはどうすればよいですか?
SELECT * FROM all_indexes WHERE table_name = 'temp';
与える
行が選択されていません
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';
テーブル名は大文字でご記入ください
OR
SELECT * FROM all_indexes WHERE lower(table_name) = 'temp';
SELECT * from USER_INDEXES
WHERE TABLE_NAME = UPPER('YourTableName')
データベース内のすべてのインデックスを表示したい場合は、試すことができます。
use information_schema;
SELECT * FROM statistics;