我知道我可以做这样的事情:
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
)
最佳答案
您还可以显式指定生成列的数据类型:
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
关于mysql - 基于另一个表的几列创建一个表,但也添加一些额外的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346864/