2016-04-29 17 views
0

sqlでテーブルを作成した後にプライマリキーでインデックスを作成する方法は?インデックスの作成

+1

テーブルはどのように作成されましたか?主キーは通常、テーブルの作成時に定義されます。後では定義されません。どのSQLを使用していますか? – lurker

+0

また、使用しているRDBMSについても言及する必要があります。 – Spidey

+0

私は最初にプライマリキーを持つテーブルを作成しました....その後、プライマリキーのインデックスを作成する必要があります...私はオラクルデータベースを使用しています –

答えて

0

プライマリキー制約を使用してテーブルを作成した場合は、PKに属するフィールドに一意のインデックスが既に存在しています。あなたが別のインデックスを作成する必要がある場合は、あなたが使用することができ、しかし

SQL> create table TEST_PK_IDX(id number primary key, descr varchar2(100)); 

Table created. 

SQL> select index_name, uniqueness, column_name 
    2 from user_ind_columns c 
    3   inner join user_indexes i 
    4   using (index_name) 
    5 where i.table_name = 'TEST_PK_IDX'; 

INDEX_NAME   UNIQUENESS   COLUMN_NAME 
-------------------- -------------------- -------------------- 
SYS_C007838   UNIQUE    ID 

SQL> create index idx_test on test_pk_idx(descr); 

Index created. 

SQL> select index_name, uniqueness, column_name 
    2 from user_ind_columns c 
    3   inner join user_indexes i 
    4   using (index_name) 
    5 where i.table_name = 'TEST_PK_IDX'; 

INDEX_NAME   UNIQUENESS   COLUMN_NAME 
-------------------- -------------------- -------------------- 
SYS_C007838   UNIQUE    ID 
IDX_TEST    NONUNIQUE   DESCR 

SQL>

あなたはPK制約を追加していないsignificative名前を持っている場合、このインデックスが作成されました
関連する問題