PostgreSQL ビューで使用される列を変更しようとする場合、通常はビューを削除し、列を変更する必要があります。をクリックしてビューを再作成します。このプロセスは面倒で時間がかかる場合があります。この負担を軽減する方法はありますか?
永続的な解決策:
長さが定義された文字変化(n) データ型の使用を避ける。代わりに、長さ指定子を付けずに text または varchar データ型を使用してください。必要に応じて、CHECK 制約を使用して最大長を強制します。このアプローチにより、列の型を変更するときにビューを変更する必要がなくなります。
CREATE TABLE monkey (name text NOT NULL); ALTER TABLE monkey ADD CONSTRAINT monkey_name_len CHECK (length(name) < 101);
PostgreSQL ビューは、単なるサブクエリのエイリアスではなく、独自のルール構造を持つ特殊なテーブルです。その結果、基になるテーブルを変更する場合、多くの場合、依存するビューも変更する必要があります。 ALTER VIEW ステートメントはビューのプロパティを変更できますが、基になるクエリは変更できません。
クエリを変更するには、CREATE OR REPLACE VIEW を使用します。ただし、結果の列のデータ型を変更する場合、この操作はできません。このような場合は、古いビューを削除し、新しいビューを作成する必要があります。このアクションではデータは削除されませんが、ビューに関連付けられた追加の属性が削除される可能性があります。
以上がPostgreSQL ビュー: ビューを削除して再作成せずに、ビューで使用されている列を変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。