
PostgreSQL8.2.24を使っています。
インデックスの削除と、インデック名のつけ方についてお聞きしたいです。
まず、削除ですが、create index tbl_fld_key on tbl (fld);
としたものは、drop index tbl_fld_key;で削除できますが、
create tbl (
fld integer,
unique key (fld)
);
としたものは、drop index tbl_fld_keyで削除できません。
インデックス名は\diコマンドで表示されている tbk_fld_keyです。
メッセージは次のとおりです。
db =# drop index tbl_fld_key;
ERROR: cannot drop index tbl_fld_key because constraint tbl_fld_key on table tbl requires it
HINT: You may drop constraint tbl_fld_key on table tbl instead.
あと、PostgreSQLのインデック名の規則について
インデックス名を見ただけで判断できるように作られるようですが
PRIMARY KEY テーブル名_フィールド名_pkey
UNIQUE テーブル名_フィールド名_key
重複可 テーブル名_フィールド名_??? <<--- この部分が知りたいです。
No.1ベストアンサー
- 回答日時:
少し勘違いがあるようです。
create tableで指定するprimary keyやuniqueは、重複チェックを効率的に行なうために、内部的にインデクスを定義しています。このインデクスだけをdropできてしまうと、矛盾する状態になってしまいます。
primary keyやuniqueで定義されるインデクスを削除するには、alter tableでprimary keyやuniqueの制約自体を削除する必要があります。
primary keyやuniqueで定義されるインデクスは、PostgreSQLの内部処理でインデクスを定義するため、名前も自動的に決められます。
一方、重複可のインデクスは、create indexでユーザが定義し、名前もユーザ側で指定したものになります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) フォーム上のリストボックスに重複して表示しています 3 2022/10/19 11:55
- MySQL MYSQL エラー 2 2022/10/18 11:37
- Visual Basic(VBA) このマクロの説明文を教えてほしいです。 1 2023/01/12 09:17
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
長いSQL文を実行するには?
-
PostgreSQLで表結合+DELETEしたい
-
列が存在しないと言われる
-
alter tableすると、処理が止ま...
-
constraint と index の違い
-
INSERTできるレコード数を制限...
-
powergres(postgres)にalter文...
-
■一番最初に値が入っている(Nul...
-
0の除算
-
【マクロ】列を折りたたみ非表...
-
Excel 2019 のピボットテーブル...
-
Access テキスト型に対する指定...
-
「直需」の意味を教えてください
-
エクセルVBAで5行目からオート...
-
Accessでテーブル名やクエリ名...
-
変数が選択リストにありません
-
エクセルグラフの凡例スペース
-
Accessのフィールド数が255しか...
-
Accessクエリーで両方のテーブ...
-
SUBSTRING 関数に渡した長さの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
列が存在しないと言われる
-
alter tableすると、処理が止ま...
-
長いSQL文を実行するには?
-
DBから日付順に指定件数の削除...
-
PostgreSQLで表結合+DELETEしたい
-
INSERTできるレコード数を制限...
-
COPY時のtimestamp型について
-
0の除算
-
■一番最初に値が入っている(Nul...
-
constraint と index の違い
-
特定の位置が特定の範囲に含ま...
-
INSERTできない
-
SQLで特定データがNULLなら別デ...
-
SQLite:項目が存在しない場合の...
-
powergres(postgres)にalter文...
-
postgreSQLの日付を変数にする...
-
インデックスの削除と、インデ...
-
リストを出力する際にSQLでデー...
-
DB2 「既存カラムへのnot null...
-
CREATE INDEXはどういう時に使...
おすすめ情報