自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL 大戰(zhàn) PostgreSQL :呆瓜模式的分歧

數(shù)據(jù)庫(kù) MySQL
MySQL 命令行工具提供了一個(gè)選項(xiàng) --safe-updates 或者 --i-am-a-dummy,默認(rèn)是 false。開啟之后如果 UPDATE, DELETE 不帶 WHERE 或者 LIMIT 就會(huì)報(bào)錯(cuò)。此外 SELECT 語(yǔ)句也可以指定返回超過一定行數(shù)后報(bào)錯(cuò)。

今天再聊一個(gè) MySQL 和 Postgres 之間小小的不同,呆瓜模式的實(shí)現(xiàn)。

1.MySQL 的呆瓜模式

圖片圖片

MySQL 命令行工具提供了一個(gè)選項(xiàng) --safe-updates 或者 --i-am-a-dummy,默認(rèn)是 false。開啟之后如果 UPDATE, DELETE 不帶 WHERE 或者 LIMIT 就會(huì)報(bào)錯(cuò)。此外 SELECT 語(yǔ)句也可以指定返回超過一定行數(shù)后報(bào)錯(cuò)。

2.PostgreSQL 的呆瓜模式

Postgres 命令行 psql 沒有提供呆瓜模式。社區(qū)曾經(jīng)有用戶嘗試直接在 Server 端加一個(gè)類似的限制,但是被駁回了 https://www.postgresql.org/message-id/flat/1580673.1675373572%40sss.pgh.pa.us#48697ecc933fe79695d7bc5db7badf9f

圖片圖片

社區(qū)于是又想了個(gè)曲線救國(guó)的方法,實(shí)現(xiàn)了一個(gè) safeupdate extension,來達(dá)到類似的效果。

圖片圖片

3.Bytebase 的呆瓜模式

Bytebase 也有類似的呆瓜模式,能同時(shí)應(yīng)用到 MySQL 和 PostgreSQL 及其他支持的數(shù)據(jù)庫(kù)上。用戶在 Bytebase SQL Editor 的普通模式進(jìn)行非 SELECT 操作是被禁止的。

圖片圖片

如果是普通開發(fā)者的話,就必須走工單審核流程。

圖片圖片

如果是 DBA,則也可以選擇進(jìn)入管理員模式再執(zhí)行。

圖片圖片

同時(shí)也可以在 SQL 審核規(guī)則中配置必須要有 WHERE,否則就報(bào)錯(cuò)。

圖片圖片

圖片圖片

回到 MySQL 和 PostgreSQL 在呆瓜模式上的區(qū)別,我自己還是更喜歡 MySQL 的方案,也希望在 psql 中也提供類似的選項(xiàng)。不過筆者覺得 PG 社區(qū)拒掉 Server 端加呆瓜模式的補(bǔ)丁是合理的,只是原因和審核官 Tom Lane 給的不同。Tom 說

The cases that I actually see reported are not "I left off the WHERE" but more like "I fat-fingered a variable in a sub-select so that it's an outer reference, causing the test to degenerate to WHERE x = x"

Tom 應(yīng)該還是開發(fā)活干的少,低估了日常中低級(jí)錯(cuò)誤發(fā)生的頻率。比如下面這樣只選中了一部分語(yǔ)句執(zhí)行,漏了后面的 WHERE。

圖片圖片

而我會(huì)拒絕那個(gè) PG 補(bǔ)丁的理由是因?yàn)樵?Server 端加限制的話,打擊面太廣,還是由不同的客戶端根據(jù)各自場(chǎng)景來決定比較好。

責(zé)任編輯:武曉燕 來源: Bytebase
相關(guān)推薦

2018-09-03 14:52:00

2022-07-05 10:06:55

PostgreSQLMySQL數(shù)據(jù)庫(kù)

2013-05-30 09:55:51

程序員分歧程序員失業(yè)的程序員

2023-06-21 10:05:32

MySQLPostgreSQL數(shù)據(jù)庫(kù)

2012-04-24 23:33:10

iOS

2013-11-13 14:27:06

設(shè)計(jì)頁(yè)面設(shè)計(jì)

2022-09-13 08:11:24

AndroidSkiaCairo

2011-08-23 10:54:16

PostgreSQL表空間用戶

2013-09-13 09:00:12

BYOD移動(dòng)辦公

2023-09-15 14:37:55

2010-05-26 10:15:11

MySQL數(shù)據(jù)庫(kù)

2011-07-22 09:33:15

OracleMySQLPostgreSQL

2025-04-30 09:35:02

2015-06-19 13:49:33

5G

2011-04-25 09:30:42

坦克大戰(zhàn)Java

2024-11-05 09:54:50

2017-03-22 09:25:26

MySQLPostgreSQL對(duì)比

2009-01-15 09:01:33

WiMAX商用廠商

2022-01-03 18:24:50

密碼單詞摩爾斯

2012-08-23 09:33:25

數(shù)據(jù)庫(kù)數(shù)組PostgreSQL
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)