web-dev-qa-db-ja.com

タイプを変更し、postgresqlの値を削除する方法

TYPEに値を追加する方法を見つけました。しかし、どうすれば価値を取り除くことができますか?
たとえば、TYPE値とenumがあります('A','B','C')。削除方法'C'

16
Alex

Enum( 'enum_test')から値( 'val1')を削除するには、以下を使用できます。

DELETE FROM pg_enum
WHERE enumlabel = 'val1'
AND enumtypid = (
  SELECT oid FROM pg_type WHERE typname = 'enum_test'
)
35
snaiffer

私は別の質問でこれに答えましたが、完全に重複しているわけではありません。

参照: postgresの列挙型を削除する方法?

12
Craig Ringer

「pg_enumから削除」という回答は機能します。

ただし、削除された列挙値がデータベースのいくつかのテーブルのどこかに存在する場合、削除は問題なく動作しますが、削除された値を持つすべてのレコードが破損するため、危険である可能性があることに注意する必要があります。例えば。結果セットにそのようなレコードがあるSELECTクエリはクラッシュします。

1
leszy77