別の列を参照する列が 1 つ以上ある場合、参照整合性を維持しながらその列を更新する最善の方法を探しています。たとえば、ラベルと説明のテーブルと 2 つのエントリがあるとします。
Label | Description
------------------------------------
read | This item has been read
READ | You read this thing already
今、私はこれらの重複を望んでいません。例のように、大文字と小文字を区別せずに重複する値を許可しない列に制約を追加したいと考えています。ただし、削除したい「READ」を参照する他のいくつかのテーブルの行がいくつかあります。
Postgres は、他の行のどのフィールドがこれを参照しているかを知っています。そこにある限り削除できないためです。では、これを参照するフィールドを取得して「読み取り」に更新するにはどうすればよいでしょうか? これはほんの一例で、実際にやりたいところがいくつかあります。もう 1 つの例は、実際にはいくつかのテーブルの int 主キーです。新しいテーブルを、既存のテーブルを拡張する一種の「ベース テーブル」として追加したいので、すべてのテーブルに一意の ID が必要になります。つまり、更新することを意味します。彼らが持っているもの。
これを行うために追加できる関数のレシピ、利用できるツール、またはその他何でも受け入れます。