簡體   English   中英

PSQL 轉換/散列列中的所有值

[英]PSQL convert/hash all values in a column

PHP Web 服務器的數據庫初始化如下: 在此處輸入圖片說明 我想使用 pgcrypto 模塊中的 PostgresSQL 的 crypt() 函數加密帳戶表中的所有密碼。 本質上,如果這是一種常規編程語言,則此代碼:

for password in passwd:
    set password = crypt(password, my encryption method)

我將如何在 SQL 上完成此操作? 有辦法嗎? 如有必要,我也願意接受 PHP 解決方案。

這個答案似乎沒有辦法在密碼中引用變量以供進一步使用; 更不用說它依賴於不同的列。 要求您知道每個密碼的值,並且實際上是手動進行的。

這個偽代碼的等價物:

for password in passwd:
    set password = crypt(password, my encryption method)

update語句:

update t
    set password = crypt(password, . . .);

SQL 是一種基於集合的語言。 SQL 查詢沒有循環機制,因為該語言在整個表(或其過濾后的子集)上運行。

如果您想過濾行而不更新所有行,您可以添加where子句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM