【问题标题】:Create table in MySQL that matches another table?在 MySQL 中创建与另一个表匹配的表?
【发布时间】:2012-02-04 09:22:14
【问题描述】:

我正在使用 MySQL。我有一个名为 EMP 的表,现在我需要再创建一个具有相同架构、相同列和相同约束的表 (EMP_TWO)。我该怎么做?

【问题讨论】:

  • 您是否尝试过使用 phpMyAdmin 之类的方式导出结构,然后只更改表名?

标签: mysql


【解决方案1】:

要基于另一个表结构/约束创建新表,请使用:

CREATE TABLE new_table LIKE old_table;     

若需要复制数据,请使用

INSERT INTO new_table SELECT * FROM old_table;  

Create table docs

注意 LIKE 选项的注意事项:

使用 LIKE 根据另一个定义创建一个空表 表,包括在 原表:

创建表 new_table LIKE original_table;使用相同的创建副本 版本表存储格式为原始表。选择 原始表需要权限。

LIKE 仅适用于基表,不适用于视图。

CREATE TABLE ... LIKE 不保留任何 DATA DIRECTORY 或 INDEX 为原始表指定的 DIRECTORY 表选项,或 任何外键定义。

【讨论】:

  • +1 多年来一直使用 MySQL,但完全不知道您可以在 CREATE 语句中使用 LIKE
  • @jprofitt 我知道是因为前几天我想在生产服务器上测试某些东西(重要查询)-> 非常有用!
  • @ManseUK 如果我想从一个数据库中复制一个表并将其重新创建到另一个数据库怎么办?
  • 这太棒了!谢谢...确实非常有用!
  • 如果有人在另一个数据库中需要相同的表结构,您只需CREATE TABLE new_db.new_table LIKE old_db.old_table :)
【解决方案2】:

如果你只想复制结构然后使用

create table new_tbl like old_tbl;

如果你想复制结构和数据然后使用

create table new_tbl select * from old_tbl;

【讨论】:

    【解决方案3】:

    在 MySQL 中创建与另一个表匹配的表? 答:

    CREATE TABLE new_table AS SELECT * FROM old_table;
    

    【讨论】:

      【解决方案4】:

      你为什么不这样走

      CREATE TABLE new_table LIKE Select * from Old_Table;   
      

      或者你可以像这样过滤数据

      CREATE TABLE new_table LIKE Select column1, column2, column3 from Old_Table where column1 = Value1;   
      

      为了首先在新表中具有相同的约束,您必须创建架构,然后您应该获取数据以创建架构

      CREATE TABLE new_table LIKE Some_other_Table;
      

      【讨论】:

      【解决方案5】:

      仅在 MySQL 命令行 8.0 上使用以下命令会显示以下错误
      [mysql> select * into at from af;]

      错误 1327 (42000):未声明的变量:在

      所以只是为了复制没有数据的确切模式,您可以使用带有如下语句的创建表:

      像 EM​​P 一样创建表 EMP_TWO;

      并与数据一起复制表格使用:

      创建表 EMP_TWO select * from EMP;

      创建空表后只复制表数据:

      插入 EMP_TWO select * from EMP;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 1970-01-01
        • 2016-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-12
        相关资源
        最近更新 更多