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