カラム追加したいけど新しいカラムの初期値に既存のカラム値を入れたい(SQLite3)

| コメント(0) | トラックバック(1)

例えばこんなテーブルがあって、

updated_atを既存レコード分はregistered_atの値で追加したい時。

ALTER TABLEにそんな機能があるかなと探したがなさげ。

ここに素晴らしいアイディアが書いてありました。

Add not null DateTime column to SQLite without default value?

この回答では既存テーブルの最後にカラムを追加する形でINSERT INTOにはSELECT *を使ってますが、SELECT句をちゃんと指定すれば、どこだって構わない。

ALTER TABLE ADD COLUMNすると、.schema t_memberでDDLを表示したとき改行が入らずフォーマットが崩れるのだけど、CREATE TABLEし直すこの方法だとそっちも綺麗に表示されてナイス。



トラックバック(1)

トラックバックURL: http://www.iwazer.com/mt/mt-tb.cgi/643

yasu: 検索結果 続きを読む

コメントする

このブログ記事について

このページは、iwazerが2011年11月14日 13:56に書いたブログ記事です。

ひとつ前のブログ記事は「Ruby 1.9.3をさっそくOSXに入れてみましょうね、rvmで」です。

次のブログ記事は「Hash(Object)からURLパラメータを作る(Ruby,CoffeeScript)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。