【发布时间】:2012-02-04 09:22:14
【问题描述】:
我正在使用 MySQL。我有一个名为 EMP 的表,现在我需要再创建一个具有相同架构、相同列和相同约束的表 (EMP_TWO)。我该怎么做?
【问题讨论】:
-
您是否尝试过使用 phpMyAdmin 之类的方式导出结构,然后只更改表名?
标签: mysql
我正在使用 MySQL。我有一个名为 EMP 的表,现在我需要再创建一个具有相同架构、相同列和相同约束的表 (EMP_TWO)。我该怎么做?
【问题讨论】:
标签: mysql
要基于另一个表结构/约束创建新表,请使用:
CREATE TABLE new_table LIKE old_table;
若需要复制数据,请使用
INSERT INTO new_table SELECT * FROM old_table;
注意 LIKE 选项的注意事项:
使用 LIKE 根据另一个定义创建一个空表 表,包括在 原表:
创建表 new_table LIKE original_table;使用相同的创建副本 版本表存储格式为原始表。选择 原始表需要权限。
LIKE 仅适用于基表,不适用于视图。
CREATE TABLE ... LIKE 不保留任何 DATA DIRECTORY 或 INDEX 为原始表指定的 DIRECTORY 表选项,或 任何外键定义。
【讨论】:
CREATE 语句中使用 LIKE。
CREATE TABLE new_db.new_table LIKE old_db.old_table :)
如果你只想复制结构然后使用
create table new_tbl like old_tbl;
如果你想复制结构和数据然后使用
create table new_tbl select * from old_tbl;
【讨论】:
在 MySQL 中创建与另一个表匹配的表? 答:
CREATE TABLE new_table AS SELECT * FROM old_table;
【讨论】:
你为什么不这样走
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;
【讨论】:
like 和select *?我收到错误。也请检查这个答案stackoverflow.com/questions/10147565/create-table-like-a1-as-a2
仅在 MySQL 命令行 8.0 上使用以下命令会显示以下错误
[mysql> select * into at from af;]
错误 1327 (42000):未声明的变量:在
所以只是为了复制没有数据的确切模式,您可以使用带有如下语句的创建表:
像 EMP 一样创建表 EMP_TWO;
并与数据一起复制表格使用:
创建表 EMP_TWO select * from EMP;
创建空表后只复制表数据:
插入 EMP_TWO select * from EMP;
【讨论】: