sqlite2で全置換する時の覚え書き

とある案件でsqlite2のデータベースのあるテーブルに含まれる文字列の全置換をしたくなったんですが、ググってヒットするselect文で使えるreplaceコマンドはエラーになる。どうもsqlite3からの実装っぽい?

でsubstrを組み合わせた方法とやらも見つけたんですが、いまいち意味がわからず応用できませんでした。

結局、どうしたかというと、ダンプ->sedで置換->新DBにインポートというやり方で、下記の1行で済みました。

sqlite hoge.db .dump | sed –e ‘s/MH\./MF\./’ | sqlite hoge2.db

ちと見づらいですが、色つきの部分を適宜置き換えてご使用下さい。

元データベースファイル:hoge.db

新データベースファイル:hoge2.db

置換元ワード:MH.

置換後ワード:MF.

今回のワード中に含まれるピリオドはエスケープする必要がある為、前に’\’をつけています。

で、sqlite hoge2.dbして問題なく変換されていることを確認したら、元ファイルと差し替えます。

トラックバック(0)

このブログ記事を参照しているブログ一覧: sqlite2で全置換する時の覚え書き

このブログ記事に対するトラックバックURL:

コメントする

アーカイブ

ウェブページ



Powered by Movable Type 4.25