`
hudeyong926
  • 浏览: 2032878 次
  • 来自: 武汉
社区版块
存档分类
最新评论

mysql 复制表数据,表结构的方法

 
阅读更多

什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份。如果用mysqldump比较麻烦,备份.MYD,.MYI这样的文件呢,操作起来也还是麻烦。

 

一,复制表结构

方法1:

mysql> create table a like users;         //复制表结构
Query OK, 0 rows affected (0.50 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a              |
| users          |
+----------------+
2 rows in set (0.00 sec)

方法2:

缺点:新表中没有了主键,索引等约束

优点:创建的新表字段可以指定select username,age,sex from users

mysql> create table b select * from users limit 0;   //复制表结构
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| a              |
| b              |
| users          |
+----------------+
3 rows in set (0.00 sec)

需要自己手动加,具体参看后面的修改表即字段属性.

create table b(id int not null AUTO_INCREMENT,PRIMARY KEY(id)) select * from users limit 0;

  

方法3:

mysql> show create table users\G;          //显示创表的sql
*************************** 1. row ***************************
 Table: users
Create Table: CREATE TABLE `users` (       //改表名
 `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
 `user_name` varchar(60) NOT NULL DEFAULT '',
 `user_pass` varchar(64) NOT NULL DEFAULT '',
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8  //改auto_increment
1 row in set (0.00 sec)

把sql语句copy出来,改一下表名和atuo_increment,然后在执行一下。

 

二,复制表数据,以及表结构

方法1:

mysql> create table c select * from users;      //复制表的sql
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

方法2:

mysql> create table d select user_name,user_pass from users where id=1;  
Query OK, 1 row affected (0.00 sec)  
Records: 1  Duplicates: 0  Warnings: 0 

上面的2种方法,方便,快捷,灵活性强。

方法3:

先创建一个空表, INSERT INTO 新表 SELECT * FROM 旧表 ,或者

INSERT INTO 新表(字段1,字段2,…….) SELECT 字段1,字段2,…… FROM 旧表

这种方法不是很方便,也是我以前经常用的。

分享到:
评论

相关推荐

    Mysql复制表结构、表数据的方法

    这些方法提供了在MySQL中灵活复制表结构和数据的不同途径。根据实际需求,可以选择适合的命令或组合使用。在执行这些操作时,应确保对数据有足够的备份,避免因误操作导致数据丢失。同时,注意权限控制,防止未授权...

    MySQL复制表结构问题的解决方法

    本篇文章将深入探讨MySQL复制表结构时遇到的问题及解决方案。 首先,我们要明确复制表结构并不涉及表中的数据,只是复制了列名、数据类型、主键、外键等元数据。通常,开发者可能会尝试使用`SELECT * INTO`语句来...

    MySQL复制表结构和内容到另一张表中的SQL语句

    在MySQL数据库管理中,复制表结构和内容是常见的操作,特别是在数据迁移、备份或测试环境中。以下是几种不同的SQL语句,用于实现这一目的: 1. **复制表结构及数据到新表** ```sql CREATE TABLE 新表 SELECT * ...

    mysql 复制表结构和数据实例代码

    此外,如果你只想复制表结构而不复制数据,可以不包含`SELECT * FROM Topic`部分,仅保留`CREATE TABLE`部分。这样,新表将只有原始表的结构,不包含任何数据。 如果只需要复制部分数据,可以修改`SELECT`子句,...

    mysql-oracle数据同步

    本文将深入探讨MySQL到Oracle的数据同步过程,以及如何在同步过程中修改MySQL数据表的标识。 首先,我们要理解MySQL和Oracle是两种不同的关系型数据库管理系统(RDBMS)。MySQL以其开源、轻量级、高效的特点被广泛...

    用power Designer生成mysql表关系视图的方法

    通过选择需要关联的表,并点击“ok”,Power Designer将根据表之间的关系生成相应的表关系视图,从而使得用户能够直观地理解数据库表结构以及表之间的关系。 需要注意的是,在实际操作过程中,可能会遇到OCR扫描出...

    MySQL 复制表详解及实例代码

    复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。 如果你想复制表的内容,你就可以使用 INSERT INTO … SELECT 语句来实现。 实例 尝试以下实例来复

    MySQL修改表结构.doc

    在MySQL数据库中,修改表结构是一项常见的操作,用于适应数据模型的变化或优化表的设计。本文主要探讨了如何在已有数据的情况下安全地修改表的字段类型、约束条件、字段位置以及字段名称,同时强调了在执行这些操作...

    MySQL复制表的三种方式(小结)

    复制表结构及其数据 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表,所以新表不会有主键,索引。 create table table_name_new as (select * from table_name_old); 只复制...

    mysql历史数据同步到clickhouse 已测试

    在设计表结构时,需要根据查询需求,将经常一起使用的列放在一起,以提高查询效率。 - **分区策略**: ClickHouse支持多种分区策略,如按时间戳、哈希等进行分区,以优化数据分布和查询性能。针对历史数据,通常会...

    java实现两个mysql同步主库的数据

    注意,如果涉及到表结构的变更,可能需要额外处理。 6. **定时任务**:为了持续同步,你可以使用Java的定时任务框架,如Quartz或Spring的ScheduledTasks,来定期检查主库的binlog并执行同步。 7. **错误处理与重试...

    mysql数据库字段复制

    接下来,我们需要获取源数据库中的表结构和数据。可以使用`DESCRIBE`语句获取表结构,`SELECT`语句获取数据。例如,要复制`users`表的所有字段,可以这样写: ```php $stmt = $srcDB->query("DESCRIBE users"); $...

    C#使用SqlBulkCopy批量复制数据到数据表

    以下是对`SqlBulkCopy`类的详细说明以及如何使用它来批量复制数据到数据表: 1. **SqlBulkCopy类的使用** `SqlBulkCopy`类是.NET Framework的System.Data.SqlClient命名空间的一部分。创建`SqlBulkCopy`对象时,...

    mysql mysqldump只导出表结构或只导出数据的实现方法

    本文将详细讲解如何使用`mysqldump`来只导出表结构或者只导出数据,以及如何导入这些备份。 ### 只导出表结构 如果你想从MySQL数据库中导出所有表的结构而不包含任何数据,可以使用以下命令: ```bash mysqldump ...

    MySql数据表拷贝

    MySQL数据表拷贝是数据库管理中的常见操作,主要用于数据迁移、备份或复制环境。在.NET环境中,我们可以利用各种编程库来实现这一功能。本程序旨在提供一个简单的解决方案,帮助用户快速复制MySQL数据库中的数据表。...

    海量数据的MySQL数据集

    综上所述,“海量数据的MySQL数据集”是一个丰富的资源,涵盖了MySQL在大数据处理中的各种技术,包括优化策略、导入方法、存储引擎选择、数据冗余和复制、以及数据分析。对开发者和数据分析师来说,这是一个学习和...

    MySQL中多种表复制SQL语句

    文中首先介绍了如何单独复制表结构(CREATE TABLE newadmin LIKE admin)、仅复制表中的数据而不保留结构特性(CREATE TABLE newadmin AS (SELECT * FROM admin)),以及如何完整地复制包括所有属性在内的一个现有表...

Global site tag (gtag.js) - Google Analytics