mysql - 在 MySQL 中使用 SELECT 语法创建表

标签 mysql sql select create-table

我想知道 MySQL 如何解释 CREATE TABLE 语法:

如果我写:

CREATE TABLE tbl1 (
    `v1` int,
    `v2` int
     CONSTRAINT idx PRIMARY KEY (v1)
)
SELECT a, b FROM tbl2;
  • 它是否确定哪个值进入 v1 哪个进入 v2 按他们在 select 语句中的顺序?

  • 它使用我在 CREATE TABLE 语句中指定的名称还是 它是否从 select 语句中获取它们?

我以前使用过 CREATE TABLE XX SELECT val FROM YY 但想更具体地了解上述语法。

最佳答案

使用您当前的解决方案,您将获得一个包含列 v1v2ab.

要了解它是如何正确完成的,请参阅 "CREATE TABLE ... SELECT Statement" MySQL 官方文档中的章节。

因此,如果您只想在 v1 上使用 indexv1v2,请按如下方式进行:

CREATE TABLE tbl1 (PRIMARY KEY (v1))
SELECT a v1,
       b v2
FROM tbl2;

关于mysql - 在 MySQL 中使用 SELECT 语法创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963343/

相关文章:

mysql - 在 R for Windows 中使用 MySQL

java - hibernate原生SQL查询错误

sql - 将不同的条件选择查询合并为一个结构

c# - From 子句 ms Access 中的语法错误

mysql - Perl DBI 的 'SELECT COUNT(*)' 返回什么?

php - 对大表进行简单查询后失去连接

mysql - 如何使用从 3 个连接表返回的数据填充表

sql - 如何根据多个字段选择不同的行

mysql - #1411 - INSERT INTO...SELECT 函数 str_to_date 的日期时间值不正确

mysql - SQL ORDER BY 两列,取大者