【问题标题】:Is there a 'SHOW CREATE TABLE' for another query是否有另一个查询的“SHOW CREATE TABLE”
【发布时间】:2017-11-16 18:43:47
【问题描述】:

我知道SHOW CREATE TABLE 为您提供了脚本,以便基于现有表创建表,但我想获取返回查询 的脚本。

示例:我有很多非常长且复杂的查询,但现在我想为这些查询获取的内容创建表。

有没有办法做到这一点?

【问题讨论】:

  • 只创建表?有没有数据?
  • 您是否考虑过观看次数?
  • 您的最终目标是什么?您可以先执行CREATE TEMPORARY TABLE temp_table AS YourQuery 然后SHOW CREATE TABLE temp_table 之类的操作,但如果您只是想首先从结果中创建一个永久表,这就引出了一个问题..
  • @AaronDietz 我只想让脚本在其他地方创建一个表

标签: mysql sql create-table


【解决方案1】:

要获取创建脚本,可以将查询结果放到临时表中,然后使用SHOW CREATE TABLE

CREATE TEMPORARY TABLE query1 AS
    SELECT * FROM YourQuery
    LIMIT 0; --Add LIMIT 0 to avoid putting all the data into the table TY Bill Karwin

SHOW CREATE TABLE query1;

如果您可以访问表格的最终目的地(并且您希望包含结果),您可以跳过一个步骤,直接使用CREATE..SELECT

CREATE TABLE permanent1 AS
    SELECT * FROM YourQuery;

【讨论】:

  • 很好的答案,但如果只需要表格定义,可能会想使用LIMIT 0。这样可以避免表格被 SELECT 中的数据填满。
猜你喜欢
  • 2012-11-22
  • 1970-01-01
  • 2012-10-17
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 1970-01-01
  • 2013-04-13
相关资源
最近更新 更多