当有多个列引用另一个列时,我正在努力寻找更新该列同时保持引用完整性的最佳方法。例如,如果我有一个标签和描述表以及两个条目:
Label | Description
------------------------------------
read | This item has been read
READ | You read this thing already
现在,我不想要这些重复。我想向不允许不区分大小写重复的值的列添加一个约束,如示例中所示。但是,我有几行引用“READ”的其他几个表,我想删除那个。
我知道 Postgres 知道其他行的哪些字段正在引用它,因为只要它们在那里,我就无法删除它。那么,我怎样才能让任何引用它的字段更新为“读取”?这只是一个例子,我实际上有几个地方想要这样做。另一个例子实际上是几个表的 int 主键,我想添加一个新表作为现有表扩展的“基表”,因此它们现在都需要具有唯一 ID,这意味着更新他们拥有的那些。
我对我可以添加的功能、我可以使用的工具或其他任何东西持开放态度。