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して問題なく変換されていることを確認したら、元ファイルと差し替えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)