0

インデックス付きのテーブルを作成しようとしていますが、右括弧がないという ORA-00907 エラーが発生します。エラーの原因となるSQLの例を次に示します。

create table example
(
   id number(12, 0) not null using index (create index example_idx on example(id))
);

null でないキーワードが原因かもしれませんが、なぜ右括弧を要求するのかわかりません。

4

1 に答える 1

2

create tablecreate indexは別個のステートメントであるため、そのように混在させることはできません (ただし、インラインで定義した一意または主キー制約をバックアップするために、暗黙的または明示的に作成されたインデックスを持つことはできます)。

2 つの別個のステートメントとして、2 つのステップでこれを行う必要があります。

create table example (id number(12, 0) not null);
create index example_idx on example(id);

ここから表示する例:

CREATE TABLE a (
 a1 INT PRIMARY KEY USING INDEX (create index ai on a (a1)));

「制約に関連付けられたインデックスの指定」というタイトルのセクションにあり、主キー制約の一部としてインデックスを作成しています。ここにusing index句 を 記 します.

あなたのコードでは、インデックスに支えられていない非 null 制約が作成されているため、その句はここでは無効です。あなたが提供したリンクが言うように、一意または主キーをバックアップする場合にのみ、インデックスを作成するこの方法を使用できます。

于 2013-04-23T05:12:03.077 に答える