9

私はこのようなことができることを知っています:

CREATE TABLE new_table AS (
    SELECT field1, field2, field3
    FROM my_table
)

SQLこの create tableに列を追加するにはどうすればよいでしょうmy_tablenew_table

上記でテーブルを作成し、SQLさらに(コマンドが完了した後)必要な列を追加できることはわかっていますが、これをすべて1つのコマンドで実行できるかどうか疑問に思っています。動作しませんでした):

CREATE TABLE new_table AS (
    (SELECT field1, field2, field3
    FROM my_table),
    additional_field1 INTEGER NOT NULL DEFAULT 1,
    additional_field2 VARCHAR(20) NOT NULL DEFAULT 1
)
4

1 に答える 1

9

生成された列のデータ型を明示的に指定することもできます。

テーブル選択マニュアルの作成を参照してください

CREATE TABLE new_table
(
 additional_field1 INTEGER NOT NULL DEFAULT 1,
 additional_field2 VARCHAR(20) NOT NULL DEFAULT 1
)
AS
(
 SELECT id, val,
        1 AS additional_field1,
        1 AS additional_field2
 FROM my_table
);

例:SQLFiddle

于 2012-09-10T07:22:54.557 に答える