当前位置:   article > 正文

MySQL中复制表/结构的写法_mysql复制表结构的sql语句

mysql复制表结构的sql语句

MySQL中复制表/结构的sql数据写法

1.需求来源

我们都知道我们经常需要对表进行导出,导入操作,我们对于sql中的用法有时候会需要我们自己来写。我们需要写复制表结构及其数据 的sql,下边我们来说一下这些sql的使用用法。

2.复制表结构及其数据

语法:

create table table_name_new as select * from table_name_old ;

说明:这种复制表结构及其数据使用中需要注意,数据是能够完全导出来的,但是如果表中存在主键,使用这种写法导出新表是不会有主键的。如果要完全导出数据和表结构这种sql写法不建议【主键不会创建出来】。

3.只复制表结构

语法:

create table table_name_new as select * from table_name_old where 1=2 ;

这种写法复制表结构需要注意,新表是不会有主键的。

或者:

create table table_name_new like table_name_old ;

说明:这种复制表结构新表是有主键的。

4.只复制表数据

语法:

  • 如果两个表结构一样:

insert into table_name_new select * from table_name_old ;

这种写法能够将表数据完全复制。

  • 如果两个表结构不一样:

insert into table_name_new(column1,column2…) select column1,column2… from table_name_old ;

说明:这种写法能够将Old表指定字段的数据复制到New表中,需要注意Old表在写sql时候字段数量要保持一样多。

5.终极复制表结构及其数据【建议使用】

通过上边的介绍,我们可以使用组合sql的形式来导出复制表结构及其数据。

步骤1:

create table card_type_2 like card_type ;

说明:先把表的正确结构复制。

步骤2:

insert into card_type_2 select * from card_type ;

说明:先把表的数据完全复制。

MySQL 数据库不支持 SELECT … INTO 语句,但支持 INSERT INTO … SELECT 。

6.为什么不使用工具呢?

我自己使用mysqldump和navicat 的右键方式都用过,但是效果不佳。

6.1 使用mysqldump
  • mysqldump -h127.0.0.1 -uroot -p密码 -P端口 --add-drop-database=true --lock-tables=false --skip-triggers -t database -w “1=1” table1 table2 >> D:\123.sql

  • C:**\MySQL5\bin>mysqldump -h127.0.0.1 -uroot -p密码 -P端口 --databases nn
    m5 --tables table1 table2 >>C:*\test_en.sql

批量导出指定的表,这种mysqldump 导出的数据格式太乱。至少mysqldump 其他使用方法可自行探索。

6.2 navicat工具使用

比如需要导出某一张数据表的表结构和数据,可以按照下面的步骤:
根据自己需求进行导出数据或者结构。使用工具本地导出速度还可以。
在这里插入图片描述

但是当你使用这个工具,连接别人数据库导出表结构和表数据的时候,真的太慢:
不想说啥了,使用这个工具就导出8874条数据,给我搞了23小时,不过这23小时,我尝试上边的方法来代替了。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/485671
推荐阅读
相关标签
  

闽ICP备14008679号