给mysql数据库的某个表导入新数据,怎么才能不覆盖原来的表呢,急!!!!!!!!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给mysql数据库的某个表导入新数据,怎么才能不覆盖原来的表呢,急!!!!!!!!!相关的知识,希望对你有一定的参考价值。

有多种方法.请参考以下方法.
方法一:
安装一个mysql的客户端,比如navicat,建好连接,打开要导入的数据库,点击导入向导,选择要导入的 数据,选择要导入的目标表,在最后的选项中选择附加到已有数据.
方法二:
先使用mysq命令行导入新数据到一张新表,新表结构与之前表一样.然后执行以下插入语句.
假定新表名为new_tb,原表名为old_tb,

insert into old_tb select * from new_tb追问

导出数据时出现DROP TABLE IF EXISTS `product`这句话,有没有什么办法 在导出的时候不出现这句话呢!!!

追答

你别导出sql文件呀,你导出为CSV或txt

追问

经过测试,有的服务器导出的时候有DROP TABLE IF EXISTS `product` 这句话,有的没有这句,应该是要在什么地方设置一下吧!!!

参考技术A 导入另一张新表,然后把两个表合并

oracle exp不能导出空表,怎样才能导出空表的结构呢?imp怎么导入空表结构?

--空表不能导出是因为11g中的不曾插入数据的空表是不分配存储单元的,当前用户下直接执行:select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0,得到的结果是“‘给当前用户下的空表分配空间’的语句”,导出或复制这些语句,直接执行这些语句,然后再次执行导出语句,就能导出所有表(包含空表),直接导入就好了,就会包含所有空表 参考技术A E:\Temp>exp -help

关键字 说明(默认) 关键字 说明(默认)
------------------------------------------------------------------------
USERID 用户名/口令 FULL 导出整个文件 (N)
BUFFER 数据缓冲区大小 OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP) TABLES 表名称列表
COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)
LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)
ROWS 导出数据行 (Y)

你尝试 exp 的时候, 增加一个 ROWS=N 的参数看看?追问

可是我导入不了空表结构

参考技术B 在导出和导入的时候使用参数 ROWS=N就可以了。追问

导出时生成了dmp文件,但是显示这个表不存在
我再将这个dmp导入到另外一个数据库,也没有导入成功

追答

11g么?这个表没有数据吧?
11g有一个情况,有一个参数默认如果一张表没有数据,就不给它分配空间,那么导出的时候就不导出这张表。
复杂的处理办法是修改参数,然后重启数据库,然后重新建立这张表。
简单的办法就是往这个表里面插入一条数据,然后提交,再把这条数据删除了,在提交。
参数的名字是:deferred_segment_creation 可以查询一下。

追问

好像是的 我往表里插入一条数据就可以导入导出了 ,嘿嘿,谢谢你哈

本回答被提问者采纳
参考技术C 导出时加一个参数rows=n就导出表结构,不导数据 参考技术D 把所有的空表
alter table 表名 allocate extent;
改了后,再导出,用的是oracle 11g吧

以上是关于给mysql数据库的某个表导入新数据,怎么才能不覆盖原来的表呢,急!!!!!!!!!的主要内容,如果未能解决你的问题,请参考以下文章

linux下用sqoop导入mysql有个表最多只能导入10580条记录,怎么改才能让它放多点

mysql查询数据库某个表的数据总量

mysql 数据库导入 如果原来表数据在导出之后有新的数据 增加或更改

将数据导入mysql中,总是提示“DROP TABLE IF EXISTS XXX(我的表名)”出错,求大神指导!!

mysql数据库如何转换成.sql文件?

怎么才能完整复制MySQL数据库