基于另一个表的几列创建表,但也添加一些其他列

时间:2012-09-10 07:12:55

标签: mysql

我知道我可以这样做:

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

我想知道如何在这个创建表SQL中添加更多列,而不是来自my_table,而是我将自己编写的列,以及哪些列是唯一的{仅限{1}}。

我知道我可以使用上面的new_table创建表,然后另外(在命令完成后)添加必要的列,但我想知道是否所有这些都可以在一个命令中完成,也许类似于这个(尝试过,但没有用):

SQL

1 个答案:

答案 0 :(得分:8)

您还可以显式指定生成列的数据类型:

请参阅Create Table Select Manual

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