[解決済み] ORA-00955 "名前はすでに既存のオブジェクトによって使用されています"
2022-02-03 15:24:19
質問
既存のPKを修正する必要があります。したがって、私はそれをドロップして再作成します。
ALTER TABLE B DROP CONSTRAINT PK_B;
ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP", "NR", "HH", "QUART");
残念ながら、最後のStatementはORA-00955というエラーを出します。
PK制約を元々定義されていたように作成すると。
ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP", "NR", "HH");
はすべて正常に動作しています。
解決方法は?
おそらく
INDEX
に関連付けられている
PRIMARY KEY CONSTRAINT
という名前になっており、また
PK_B
.
として確認することができます。
SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>';
もしそれが本当なら、.をしてください。
ALTER INDEX "PK_B" RENAME TO "PK_XYZ";
更新情報 について
ALTER INDEX
という文がありますが、Justinがコメントで述べているように、いくつかの重要な点があります。
オラクルは暗黙のうちに
UNIQUE
インデックスをサポートします。
PRIMARY KEY CONSTRAINT
. このインデックスは主キーと同じ名前であり、主キーが変更されているため、このインデックスは
より良い
を削除して、古い主キーの定義に従ってインデックスを再作成する必要があります。
私の結論は:
- 主キー制約は、ユニーク・インデックスによって強制されます。
- Oracle が既にインデックスを発見している場合(一意か非一意か)、それを使用します。 を主キーに使用します。
- インデックスが最初に一意でないものとして作成された場合、そのインデックスは引き続き は非ユニークと表示されますが、実際にはユニークインデックスになります。
Arupによる良いデモで、他の面でもかなり詳しく説明されています。 主キーは一意性を保証するのか?もう一度考えてみてください。
関連
-
Oracleの表領域と権限を徹底解説
-
オラクルのファジー・クエリーとその使い方
-
ODBC sqlserverデータソースに接続するためのOracleの詳細な手順
-
オラクル・ラックのケーススタディ
-
Oracle ADGプロセスを構築するDBCAコマンドライン
-
[解決済み】ORA-00932: 整合性のないデータ型: 予想される - CLOB を取得しました。
-
[解決済み] ORA-01465: BLOB を使用しているとき、Oracle の 16 進数が無効です。
-
[解決済み] PL/SQLプロシージャ - SQLステートメント無視エラー
-
[解決済み] BATCHEDのインデックスによるテーブルアクセスとROWIDのインデックスによるテーブルアクセスの違い
-
[解決済み] ALTER TABLE文に'ON DELETE CASCADE'を追加する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
オラクルストアドプロシージャの事例を解説
-
Oracle Temporary Tablespace SQLステートメントの実装
-
Oracle PL/SQLを使用して電子メール機能(UTL_MAIL)を実装する方法
-
plsqlを使用してリモートOracleデータベースに接続する複数の方法
-
[解決済み】Oracle Databaseで「SET DEFINE OFF」を使用するタイミングと理由
-
C#からORACLEへの接続が乱れたコードの問題解決法
-
[解決済み] ORA-00955 "名前はすでに既存のオブジェクトによって使用されています"
-
[解決済み] オラクル ユーザーデータでConnect By Loop
-
[解決済み] PL/SQLプロシージャ - SQLステートメント無視エラー
-
[解決済み] 外部キーの追加エラー。ORA-02298: 検証できません - 親キーが見つかりませんでした