sql: prepend/append 有事要发邮件字段
sql: prepend/append something to email field
我经常导入生产数据库的副本,替换我的开发数据库。
但是,在开发过程中,我不想不小心给任何生产用户发送电子邮件。 (他们的电子邮件存储在 users
table 的 email
列中)
我怎样才能更新所有的电子邮件地址,这样如果我不小心给他们发了电子邮件,它就会转到 nowhere
如果原始电子邮件以某种方式嵌入到伪造的电子邮件中也很好。
给定:电子邮件列包含一封电子邮件(没有逗号,没有猴子黑客,隐藏命令 - 只是一封电子邮件)。那么:
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)
我经常导入生产数据库的副本,替换我的开发数据库。
但是,在开发过程中,我不想不小心给任何生产用户发送电子邮件。 (他们的电子邮件存储在 users
table 的 email
列中)
我怎样才能更新所有的电子邮件地址,这样如果我不小心给他们发了电子邮件,它就会转到 nowhere
如果原始电子邮件以某种方式嵌入到伪造的电子邮件中也很好。
给定:电子邮件列包含一封电子邮件(没有逗号,没有猴子黑客,隐藏命令 - 只是一封电子邮件)。那么:
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)