
去年写的全方位对比 Postgres 和 MySQL 引发了社区里不少的讨论。今天再聊一个 MySQL 和 Postgres 之间小小的不同,呆瓜模式的实现。
MySQL 的呆瓜模式
MySQL 命令行工具提供了一个选项 --safe-updates 或者 --i-am-a-dummy,默认是 false。开启之后如果 UPDATE, DELETE 不带 WHERE 或者 LIMIT 就会报错。此外 SELECT 语句也可以指定返回超过一定行数后报错。
PostgreSQL 的呆瓜模式
Postgres 命令行 psql 没有提供呆瓜模式。社区曾经有用户尝试直接在 Server 端加一个类似的限制,但是被驳回了。

社区于是又想了个曲线救国的方法,实现了一个 safeupdate extension,来达到类似的效果。

本文比较了MySQL和PostgreSQL在‘呆瓜模式’(防止无条件更新或查询所有数据)上的不同,MySQL提供了--safe-updates选项,而PostgreSQL需借助第三方扩展。作者倾向于MySQL的方案,但认为PG社区拒绝在Server端添加该功能是合理的,强调应由客户端根据场景自定义错误处理。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



