概要
諸事情により、本番環境で発行するSQLの各テーブル名にスキーマを付け足す必要が発生した。
巨大なSELECT文などで全てのテーブル名にスキーマ(例:Production.)を付ける作業が大変なので、
テーブル名(from、joinの後に続くテーブル名にスキーマ名を付け足す正規表現を書いた。
正規表現
- FROM、JOINの後に改行が入っている場合、適時置換して除いてください。
- サブクエリの結果の先頭にスキーマ名を付けないように2回目のマッチの先頭はローマ字のみとしています。
置換前
(FROM|JOIN)\s+([a-zA-Z]+\S*)
置換後
$1 Production.$2
補足1:置換後のProduction.を好きなスキーマ名に書き換えて使用してください。
補足2:未拡張さくらエディタの置換で使用することを前提としているのでfromとテーブル名の間に改行を含む形式には対応していません。
使用例
置換前
SELECT
*
FROM m_product p
JOIN m_product_info pi
ON p.id = pi.product_id
WHERE
p.id IN(
SELECT
product_id
FROM t_sales
WHERE
sales_date = '20161225'
)
↓
置換後
SELECT
*
FROM Production.m_product p
JOIN Production.m_product_info pi
ON p.id = pi.product_id
WHERE
p.id IN(
SELECT
product_id
FROM Production.t_sales
WHERE
sales_date = '20161225'
)