電子書籍の厳選無料作品が豊富!

テーブルへの列の追加についてご教授をお願いいたします。

今、テーブルの列が以下のようにあるとします。

■追加前の列
A B C

この列に、Dという列を追加するときに、

■追加後の列
A B C D

にすることはできます。

このDを最後尾ではなく、BとCの間に挿入させるには
どうしたらよろしいのでしょうか。

テーブルを削除し、定義をしなおさなければならない
のでしょうか?そうすると、テーブルのデータを
バックアップし、列を追加したものに対して、
データ修正・挿入という作業も発生します。

効率的に進められる方法について教えて頂けないでしょうか。

A 回答 (3件)

一般的には以下のような方法をとります。



1. 作業表を作成する

create table temp_table (A, B, D, C);

2. 元表のデータを作業表に挿入する

insert into temp_table (A, B, D, C)
select A, B, null, C from orig_table;

3. 元表を削除する

drop table orig_table;

4. 作業表をリネームする

rename temp_table to orig_table;

5. 制約等を追加する

alter table orig_table ...;

# 要件に合わせて使用するとよいでしょう。
    • good
    • 0

「RDB」である以上、列も行も順にこだわるのは、あまり意味が無いのでは?



select文でA B C Dの順に取得すれば良いと思います。
    • good
    • 0

列の追加はtableの最後に行われるので、列間に追加したい場合は


再定義が必要です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!