ON UPDATE RESTRICT有什么作用?

Ale*_*lex 40 mysql database database-design

...
user_id INTEGER NOT NULL, 
CONSTRAINT fk_user_meta FOREIGN KEY (user_id)
    REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT
Run Code Online (Sandbox Code Playgroud)

我从这里知道ON DELETE CASCADE意味着如果我从users表中删除一行,那么用户元表中的相关行也将被删除.但是ON UPDATE RESTRICT做了什么?

Chr*_*rle 53

RESTRICT 如果有任何外键依赖于正在更改的字段,则会阻止操作发生.

  • 或者外键更新为不存在键 (12认同)
  • @WillSheppard-最好不要考虑不这样做的成本 (8认同)
  • @Blauhirn如果其他表中的数据在没有引用数据的情况下没有意义,那么允许删除它并使数据进入无效状态将是一个坏主意。`RESTRICT` 允许您删除由外键引用的数据,只有在没有其他数据依赖它的情况下。例如,当有客户订单参考时删除客户记录。可以安全删除未下订单的客户。 (4认同)
  • 您为什么要实现它? (2认同)