[解決済み] ORA-01408: そのような列のリストはすでにインデックスされています。
2022-02-08 22:46:24
質問
Oracle SQL-Developerは、既に存在するデータベースのテーブル(アイテム)のDDL文を生成します。生成されたDDL文は、新しいデータベースインスタンス内で適用することができないのは非常に不思議です。以下は、DDL の単純化された例です。
CREATE TABLE AB
(
"A" NUMBER(*,0),
"B" NUMBER(*,0),
"C" VARCHAR2(255 BYTE),
CONSTRAINT "CHK_AB_A_NN" CHECK (A IS NOT NULL) ENABLE,
CONSTRAINT "CHK_AB_B_NN" CHECK (B IS NOT NULL) ENABLE,
CONSTRAINT "PK_AB" PRIMARY KEY ("A", "B")
);
CREATE INDEX "IDX_AB_A" ON "AB"("A");
CREATE INDEX "IDX_AB_B" ON "AB"("B");
CREATE UNIQUE INDEX "PK_AB" ON "AB"("A", "B");
これらのステートメントを新しいOracleインスタンス内で実行すると、エラーが発生します。
SQL-Fehler: ORA-01408: Diese Spaltenliste hat bereits einen Index
1. 00000 - "such column list already indexed"
このエラーの原因は何ですか?
解決方法を教えてください。
その部分です。
CONSTRAINT "PK_AB" PRIMARY KEY ("A", "B")
はインデックスを生成しています。インデックスがないと主キー制約は成り立ちません。しかし、その部分。
CREATE UNIQUE INDEX "PK_AB" ON "AB"("A", "B");
は同じカラムでさらに別のインデックスを生成しています。これがエラーの原因です。しかし、Oracleツールが間違ったスクリプトを生成しているのは非常に奇妙です :) もしかしたらバグかもしれません。
関連
-
[解決済み】 "指定された集約関数を含まないクエリを実行しようとしました。"
-
[解決済み】Postgresのエラー。式として使用されるサブクエリによって返される複数の行
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] ORA-01790: 式は、対応する式と同じデータ型でなければならないエラーが発生するケース
-
[解決済み] ORA-00918: 列があいまいに定義されています」を解決する方法
-
[解決済み] 集計を行わずに行から列へピボット移動する
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] VBA - ADODB.CommandTextの実行
-
[解決済み] Oracleの全テーブルのリストを取得しますか?
-
[解決済み】SQL Serverで既存のテーブルにデフォルト値を持つカラムを追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 "指定された集約関数を含まないクエリを実行しようとしました。"
-
[解決済み】Excelに合体的な関数はありますか?
-
[解決済み】Teradata - 計算中に数値のオーバーフローが発生しました。
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] データ型 varchar の変換エラー
-
[解決済み] Presto の JSON_EXTRACT で ' ' 文字を含むキーに問題がある。
-
[解決済み] SQLでchar値をmoneyに変換できない
-
[解決済み] MySQLのON句の不明なカラム
-
[解決済み] SQLサーバーで文字列をsmalldatetimeデータ型に変換する際、変換に失敗しました(静的値を除く)。
-
[解決済み] PLS-00428: この SELECT 文では INTO 句が必要です。