例如,如果我设置了 ON DELETE CASCADE,它会以某种方式影响删除命令之外的性能吗?还是只会影响删除时的性能?
更重要的是 - 如果我设置为在删除时不执行任何操作(例如没有删除约束),那么从该表中选择时,postgres 是否会进行任何特殊验证,从而影响性能,或者我是否只冒着获取损坏数据的风险?
谢谢!
答案1
肯定不会影响SELECT
。
它可以影响父表(被引用表)上的UPDATE
和,以及引用方上的和。DELETE
INSERT
UPDATE
DO NOTHING
并不意味着“忽略此约束”。这是强制的。请参阅手册。拼写是 SQL 标准的怪异之处。