1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FROM JOIN直後のテーブル名にスキーマ名を一括で付け足す正規表現

1
Last updated at Posted at 2016-12-17

概要

諸事情により、本番環境で発行する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'
    )
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?