本番データを、開発環境に落とした後に個人情報部分を書き換えるクエリ。あくまでも開発環境用なので、データマスキングツールを使うまでもないので、簡単なクエリで書き換えるというだけ。以下はPostgreSQLでのサンプル。
1.固定名+連番に書き換え
名前(name)を固定値「試験 太郎」+キー番号にする場合。数値型のキーのcustomer_idを6文字以内(先頭から)の文字列として後ろにつけている。
UPDATE customer SET name = '試験 太郎' || CAST(customer_id AS character varying(6)) WHERE name <> '';
「試験 太郎1」・・・「試験 太郎999999」のような感じ。
2.文字列の一部を書き換え
名前(name)の1文字目、3文字目、5文字目を「〇」に置き換える場合。
UPDATE customer SET name = '〇' || SUBSTR(name, 2, 1) || '〇' || SUBSTR(name, 4, 1) || '〇' || SUBSTR(name, 6) WHERE name <> '';
「山本文左衛門」が「〇本〇左〇門」となる。短い「孫文」のような場合、「〇文〇〇」となるので、まあテストデータなので特に気にしない。
3.電話番号
ハイフンで連結されている電話番号(tel)の市外局番だけはそのままで、残りは「9999-9999」として、「03-9999-9999」というような感じにする。
UPDATE customer SET tel = CAST(SPLIT_PART(tel ,'-', 1) AS character varying(5)) || '-9999-9999' WHERE tel <> '';
ハイフンの無い携帯番号(mobile_no)の先頭6文字はそのままで、後ろ5文字を「99999」とする例で、「08012399999」という感じになる。
UPDATE customer SET mobile_no = SUBSTR(mobile_no , 1, 6) || '99999' WHERE mobile_no <> '';
4.メールアドレス
ドメインはそのままで、アカウント部分を固定値「test」+キー番号とする場合。
UPDATE customer SET mail = 'test' || CAST(id_customer AS character varying(10)) || '@' || CAST(SPLIT_PART(mail ,'@', 2) AS character varying(64)) WHERE mail <> '';
「yamada_tarou@hogehoge.com」がid_customer=869の場合、「test869@hogehoge.com」となる。