既存テーブルに新しい列を挿入する。
Posted: 2016年6月15日(水) 14:59
既存テーブルに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;
【既存テーブル】
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;