mysql复制表的数据和结构(可跨越数据库)
发布时间:2022-10-25 10:42:54 所属栏目:MySql教程 来源:
导读: 将数据从现有表复制到新的数据,在某些情况下非常有用,例如备份数据和复制生产数据进行测试。我们要想将数据从旧表复制到新表,那我们需要使用的sql案例如下:
CREATE TABLE new_table
SELECT col
CREATE TABLE new_table
SELECT col
|
将数据从现有表复制到新的数据,在某些情况下非常有用,例如备份数据和复制生产数据进行测试。我们要想将数据从旧表复制到新表,那我们需要使用的sql案例如下: CREATE TABLE new_table SELECT col, col2, col3 FROM existing_table; 上面的sql大致的意思就是,首先使用create table语句中指定的名称创建一个新表,完事嘞,新表的结构由SELECT语句的结果集定义,再来就是,MySQL会自动将来自SELECT语句的数据填充到新表中。大致的意思和流程就是这样了。就这个案例的sql来说,对于大多数情况是满足的,但是,我们有时候需要的仅仅是部分满足需要的数据,那么,我们要将部分数据从现有表复制到新表中,就需要在SELECT语句中使用where子句来完成操作了。大家来看个案例: CREATE TABLE new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions; 完事,大概就差不多了。但是我们在创建之前,检查我们要创建的表是否已存在是非常重要的。 为此,我们可以在CREATE TABLE语句中使用IF NOT EXIST子句。 所以我们来看将数据从现有表复制到新的表的完整命令: CREATE TABLE IF NOT EXISTS new_table SELECT col1, col2, col3 FROM existing_table WHERE conditions; 还有一点我需要说明的就是MySQL 复制表,上面的声明只是复制表及其数据,它不会复制与表关联的其他的诸如索引、主键约束、外键约束触发器等数据库对象。如果需要复制这些东西的话,嘿嘿,也不是没有办法,请看如下sql: CREATE TABLE IF NOT EXISTS new_table LIKE existing_table; INSERT new_table SELECT * FROM existing_table; 上面是两个sql,第一个是创建和旧表一样的一个新表,完事第二条sql就是来插入我们需要的数据的。完事大概的就记录的差不多了。因为思路比较简单哈,咱也没有弄什么实例,完事咱们再来看下跨库复制表就算是完事了哈。先来看个sql的例子: CREATE TABLE destination_db.new_table LIKE source_db.existing_table; INSERT destination_db.new_table SELECT * FROM source_db.existing_table; 上面共有两个sql,第一个sql通过从源数据库(source_db)复制现有表(existing_table)到目标数据库(destination_db)中创建一个新表new_table。完事第二个sql将数据从源数据库中的现有(existing_table)表复制到目标数据库中的新表。 (编辑:百客网 - 百科网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


