mysql - 基于另一个表的几列创建一个表,但也添加一些额外的列

标签 mysql

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

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

关于mysql - 基于另一个表的几列创建一个表,但也添加一些额外的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12346864/

相关文章:

python - 我如何在没有 mysql 服务器的情况下管理小型数据库?

mysql - 在 SQL 中显示较低值和较高值的数量

php - Slim 框架 INSERT 查询不起作用

mysql - SQL - 其中一个表而不是另一个表(多个字段)

php - Laravel AES-256加密和MySQL

mysql - 限制计数,其余为 "Others"

php - 动态构建 PHP PDO MySQL 查询

mysql - 这个内部连接语句是否正确?

SQL - 将数据转换为日期/源/值 "grid"

php - CakePHP 2.2.0 多树重新排序性能