外键的更新行为变得更智能了。PostgreSQL 9.3 里有个挺实用的改动:只要父表一更新,不管是不是改了外键字段,子表的相关字段就会自动设为NULL
或默认值。以前只有改到关联列才会触发,这次是更符合标准的做法。写业务逻辑的时候省心多了。
缓存计划的事儿也优化了不少。以前search_path
变了,执行的还是老缓存,容易出奇怪的问题。9.3 开始,只要路径变了,就强制重编译计划。嗯,等于自动帮你排坑了,对喜欢切库或用 schema 做多租户的场景挺友好。
Digoal 在 PostgreSQL China Conference 上讲得细,还配了实际操作演示,像建表、插数、改数啥的,看起来一目了然。建议你有空翻翻他博客,蛮多干货。
如果你在做数据库升级,尤其是还卡在老版本的,那这俩特性值得关注。不只是跟标准对齐,更重要的是能让你写的代码更健壮,维护也更省心。
推荐你顺手看看PostgreSQL 9.3 中文文档,配合上面讲的内容,理解会更透。还有其他外键和约束相关的内容我也放下面了,查资料的时候用得上。