9

我知道我可以做这样的事情:

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

我想知道如何向这个创建表添加更多的列,这些列SQL不是来自my_table,而是那些我会写我自己的列,并且这将是唯一的new_table

我知道我可以用上面的方法制作表格,SQL然后额外(在命令完成后)添加必要的列,但我想知道这一切是否可以在一个命令中完成,也许是这样的(试过这样,但是没用):

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 回答