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

z5btuh9x  于 2023-06-04  发布在  Mysql
关注(0)|答案(6)|浏览(175)

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

oiopk7p5

oiopk7p51#

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

CREATE TABLE new_table LIKE old_table;

若要复制数据(如果需要),请使用

INSERT INTO new_table SELECT * FROM old_table;

Create table docs
请注意LIKE选项上的注解:
使用LIKE根据另一个表的定义创建一个空表,包括原始表中定义的任何列属性和索引:
CREATE TABLE new_table LIKE original_table;使用与原始表相同版本的表存储格式创建副本。原始表需要SELECT权限。
LIKE仅适用于基表,而不适用于视图。
创建表格... LIKE不保留为原始表指定的任何DATA DIRECTORY或INDEX DIRECTORY表选项或任何外键定义。

vddsk6oq

vddsk6oq2#

如果只想复制“结构”,请使用

create table new_tbl like old_tbl;

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

create table new_tbl select * from old_tbl;
xzv2uavs

xzv2uavs3#

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

CREATE TABLE new_table AS SELECT * FROM old_table;
a64a0gku

a64a0gku4#

你为什么不这样

CREATE TABLE new_table LIKE Select * from Old_Table;

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

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

为了在新表中有Same约束,首先必须创建模式,然后应该为模式创建数据

CREATE TABLE new_table LIKE Some_other_Table;
czfnxgou

czfnxgou5#

仅在MySQL命令行8.0上使用以下命令,将显示以下错误
[ mysql> select * into at from af;]
错误1327(42000):未声明的变量:在
因此,为了复制不包含数据的确切模式,您可以使用create table with like语句,如下所示:
创建类似EMP的表EMP_TWO;
并将表与数据沿着复制使用用途:
创建表EMP_TWO select * from EMP;
要在创建空表后仅复制表数据,请执行以下操作:
插入到EMP_TWO中select * from EMP;

brccelvz

brccelvz6#

SHOW CREATE TABLE tablename

给你sql来重新创建你的表,包括索引等-只需把名字改成你想要的新表名:)

相关问题