2017-05-13 10 views
0

私は、開発データベースを置き換えて、本番データベースのコピーを定期的にインポートします。sql:電子メールフィールドに何かを追加/追加

しかし、開発中に、私は誤って生産ユーザーに電子メールを送信したくありません。 (その電子メールはusersテーブルのemail列に格納されている)私は誤ってメールした場合、元の場合にもいいだろうならば、それはnowhere

に行くように

どのように私はすべての電子メールアドレスを更新することができます電子メールは何とか偽の電子メールに埋め込まれています。

+0

をあなたはテストメールサーバーがウィッヒメールを受け入れ、実行する必要があります。それを送っていない – Jens

答えて

0

与えられます:電子メールの欄には1つの電子メールがあります(コンマはありません。猿のハッキングも隠されたコマンドも電子メールではありません)。その後:

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

は、電子メールは、それがnullの場合、そのようなままになり、nullではない最後に.failを追加し、すべての電子メールを更新します。戻すには、実行します。データセットの

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

例:

t=# with users(email) as (values('[email protected]'||'.fail'),(null)) 
select substring(email,1,length(email)-5) from users where substring(email from '.....$') = '.fail'; 
    substring 
------------- 
[email protected] 
(1 row) 
関連する問題