2013-04-08 51 views
0

如果你永遠不會改變一個ID(更好地說:主鍵字段),是否有任何理由在數據庫中使用約束條件ON UPDATE使用ON UPDATE約束的原因

+0

檢查此鏈接可能會幫助您http://stackoverflow.com/questions/1481476/when-to-use-on-update-cascade – 2013-04-08 16:16:10

+0

謝謝。似乎沒有理由(如果ID不改變)。我想說,俱樂部/樂隊/音樂會的答案是糟糕的數據庫設計。 – stofl 2013-04-08 16:34:25

回答

0

InnoDB允許外鍵引用任何索引列或一組列。因此,僅當您從未更改引用字段(而不是主鍵)時,則可以忽略此問題。

除此之外,如果你不需要它,不要使用它。注意:缺省行爲(即,如果您省略ON UPDATE子句)是拒絕引用字段上的任何更新,從而防止您在不知不覺中破壞參照完整性。

+0

謝謝。我認爲一個*被引用的字段*應該始終是主關鍵字或其在n:m關係表中的一部分,對吧? – stofl 2013-04-08 16:39:05

+1

@stofl是的,我可以想到沒有必要更新代理鍵(最常見的主鍵類型)的情況。不過,讓我來推薦你[這個答案](http://stackoverflow.com/a/1481611/1446005)。 – RandomSeed 2013-04-09 08:09:10