You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中使用pgcrypto更换密钥后更新加密列的方法

更换pgcrypto加密密钥的更新语句

要将现有用key1加密的ssn列数据替换为key2加密的内容,你可以通过解密旧值+重新加密的方式执行更新:

UPDATE info
SET ssn = pgp_sym_encrypt(pgp_sym_decrypt(ssn, 'key1'), 'key2');

注意事项

  • 执行前务必备份数据,避免操作失误导致数据丢失
  • 若表数据量较大,该操作会消耗较多数据库资源,建议在业务低峰时段执行
  • 可添加WHERE条件分批更新,减少锁表时长,示例:
    UPDATE info
    SET ssn = pgp_sym_encrypt(pgp_sym_decrypt(ssn, 'key1'), 'key2')
    WHERE name = 'John'; -- 可根据主键或其他字段调整条件
    
  • 更新完成后,验证新密钥是否能正常解密:
    SELECT name, pgp_sym_decrypt(ssn, 'key2') FROM info;
    

内容的提问来源于stack exchange,提问作者Mohit224

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 01:34:54