Oracle Database インデックスを作成する

Oracle Database インデックスを作成する

Oracle Databaseで、インデックスを作成する手順を記述してます。「CREATE INDEX」に対象のテーブル名とインデックス名を指定します。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition
  • SQL Developer 21.2.1.204

手順

インデックスを作成するには、「CREATE INDEX」を使用します。

CREATE INDEX インデックス名 ON テーブル名(列名, 列名, ・・・ );

実際に、以下の「TESTTBL」の「id」にインデックスを作成してみます。

CREATE TABLE TESTTBL
(
  id NUMBER(1),
  name NVARCHAR2(255),
  age NUMBER(2)
);

作成してみます。

CREATE INDEX TESTINDEX ON TESTTBL(id);

実行結果

インデックスが作成されているかを確認してみます。

SELECT * FROM ALL_INDEXES
WHERE TABLE_NAME = 'TESTTBL';

作成されていることが確認できます。

既にインデックスが使用されている場合は、エラーとなります。

次のコマンドの開始中にエラーが発生しました : 行 2 -
CREATE INDEX TESTINDEX ON TESTTBL(id)
エラー・レポート -
ORA-00955: すでに使用されているオブジェクト名です。
00955. 00000 -  "name is already used by an existing object"
*Cause:    
*Action:

表領域を指定

以下のように、表領域を指定して作成することも可能です。

CREATE INDEX TESTINDEX ON TESTTBL(id)
TABLESPACE SAMPLETBS;