当有一列引用另一列时,我很努力寻找最佳方式来更新该列,同时保持引用完整性。例如,如果我有一张标签和说明表以及两个条目:更新Postgres中引用的列
Label | Description
------------------------------------
read | This item has been read
READ | You read this thing already
现在,我不希望这些副本。我想向不允许大小写不重复的值的列添加一个约束,如示例中所示。但是,我有几行其他几个引用'READ'的表,这是我想要删除的表。
我知道Postgres知道其他行的哪个字段引用了这个,因为只要他们在那里,我就不能删除它。那么,我怎么能得到任何引用它的字段来更新为'read'?这只是一个例子,实际上我有几个地方想要这样做。另一个例子实际上是一些表的int主键,我想在其中添加一个新的表作为一种“基表”,现有的表可以扩展,所以他们现在都需要有唯一的ID,这意味着更新他们拥有的。
我很开放食谱的功能,我可以添加到做到这一点,我可以利用的工具,或其他任何东西。
mmm ...如果你有'阅读'和'阅读'你将无法更新。我认为所有参考表都应该更新,然后'READ'的记录下降。对外键使用“ON DELETE RESTRICT”,不会有任何风险遗漏。 – piro 2008-10-26 18:43:49
为什么不呢?你只需要小心地正确更新,只有那些'读' – 2008-10-26 19:18:07