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

use*_*403 76 mysql

我正在使用MySQL.我有一个名为EMP的表,现在我需要创建一个具有相同模式,相同列和相同约束的表(EMP_TWO).我怎样才能做到这一点?

Man*_*eUK 160

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

CREATE TABLE new_table LIKE old_table;     
Run Code Online (Sandbox Code Playgroud)

要复制数据,请根据需要使用

INSERT INTO new_table SELECT * FROM old_table;  
Run Code Online (Sandbox Code Playgroud)

创建表文档

注意LIKE选项的注释:

使用LIKE基于另一个表的定义创建一个空表,包括原始表中定义的任何列属性和索引:

CREATE TABLE new_table LIKE original_table; 使用与原始表相同的表存储格式版本创建副本.原始表上需要SELECT权限.

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

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

  • +1多年来一直在使用MySQL,并且完全没有意识到你可以在`CREATE`语句中使用`LIKE`. (6认同)

Kar*_*put 11

如果您只想复制Structure,请使用

create table new_tbl like old_tbl;
Run Code Online (Sandbox Code Playgroud)

如果要复制Structure和数据,请使用

create table new_tbl select * from old_tbl;
Run Code Online (Sandbox Code Playgroud)


小智 7

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

CREATE TABLE new_table AS SELECT * FROM old_table;
Run Code Online (Sandbox Code Playgroud)