既存テーブルに新しい列を挿入する。

返信する
choco
管理人
記事: 279
登録日時: 2011年5月30日(月) 10:44

既存テーブルに新しい列を挿入する。

投稿記事 by choco »

既存テーブルにALTER文で一発で挿入できるかと思ったけど、これが一番スマートだった。

【既存テーブル】
CREATE TABLE dankai (
id integer NOT NULL,
corp_id text,
"first" real,
"second" real,
third real,
forth real,
etc text
);

【新しいテーブルを作成】
CREATE TABLE dankai_new (
id integer NOT NULL,
corp_id text,
"first" real,
"second" real,
third real,
forth real,
mfirst real,
msecond real,
mthird real,
etc text
);

【既存テーブルからデータを新しいテーブルにデータをコピー】
INSERT INTO dankai_new (id, corp_id, first, second,third,forth,etc)
SELECT id, corp_id, first, second,third,forth,etc FROM dankai;

【既存テーブル名を変更】
ALTER TABLE dankai RENAME TO dankai_old;

【新しいテーブル名を変更】
ALTER TABLE dankai_new RENAME TO dankai;

【追加した項目に対してUPDATE文で補完】
update dankai set mfirst = 2331.60,msecond = 4663.80,mthird = 0 where corp_id='1111';

【使わなくなったテーブルを削除】
DROP TABLE dankai_old;
返信する