【问题标题】:sql: prepend/append something to email fieldsql:在电子邮件字段中添加/附加内容
【发布时间】:2017-05-13 18:04:12
【问题描述】:

我经常导入生产数据库的副本,替换我的开发数据库。

但是,在开发过程中,我不希望意外地向任何生产用户发送电子邮件。 (他们的电子邮件存储在users 表的email 列中)

我怎样才能更新所有的电子邮件地址,这样如果我不小心给它们发了电子邮件,它会转到nowhere

如果原始电子邮件以某种方式嵌入伪造的电子邮件中也会很好。

【问题讨论】:

  • 你应该有接受邮件的测试邮件服务器。未发送

标签: sql postgresql obfuscation email-address


【解决方案1】:

假设:电子邮件列包含一封电子邮件(没有逗号,没有猴子黑客,隐藏命令 - 只是一封电子邮件)。那么:

update users set email=email||'.fail';

将更新所有电子邮件,将.fail添加到电子邮件不为空的末尾,如果为空,它将保持不变。要恢复,请运行:

update users set email=substring(email,1,length(email)-5) 
  where substring(email from '.....$') = '.fail';

数据集示例:

t=# with users(email) as (values('pop@pop.pop'||'.fail'),(null))
select substring(email,1,length(email)-5) from users where substring(email from '.....$') = '.fail';
  substring
-------------
 pop@pop.pop
(1 row)

【讨论】:

    猜你喜欢
    • 2019-12-02
    • 1970-01-01
    • 2011-08-04
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    相关资源
    最近更新 更多