select * from user_table a where
exists (select 1 from sub_table1 b where b.id = a.id )
or
exists (select 1 from sub_table2 c where c.id = a.id )
......
我今天使用过的命令如下:导出数据
./mysqldump --host=localhost --port= --user=root --password= -l -f zcv3 v2_category v2_magazine >/Data/sync_mysql/zcv3.txt
然后导入数据是用以下命令
./mysql --host=localhost --port= --user=root --password= zcv3 </Data/sync_mysql/zcv3.txt
mysqldump工具很多方面类似相反作用的工具mysqlimport。它们有一些同样的选项。但mysqldump能够做更多的事情。它可以把整个数据库装载到一个单独的文本文件中。这个文件包含有所有重建您的数据库所需要的SQL命令。这个命令取得所有的模式(Schema,后面有解释)并且将其转换成DDL语法(CREATE语句,即数据库定义语句),取得所有的数据,并且从这些数据中创建INSERT语句。这个工具将您的数据库中所有的设计倒转。因为所有的东西都被包含到了一个文本文件中。这个文本文件可以用一个简单的批处理和一个合适SQL语句导回到MySQL中。这个工具令人难以置信地简单而快速。决不会有半点让人头疼地地方。
因此,如果您像装载整个数据库Meet_A_Geek的内容到一个文件中,可以使用下面的命令:
bin/mysqldump –p Meet_A_Geek >MeetAGeek_Dump_File.txt
这个语句也允许您指定一个表进行dump(备份/导出/装载?)。如果您只是希望把数据库Meet_A_Geek中的表Orders中的整个内容导出到一个文件,可以使用下面的命令:
bin/mysqldump –p Meet_A_Geek Orders >MeetAGeek_Orders.txt
这个非常的灵活,您甚至可以使用WHERE从句来选择您需要的记录导出到文件中。要达到这样的目的,可以使用类似于下面的命令:
bin/mysqldump –p –where="Order_ID >2000" Meet_A_Geek Orders >Special_Dump.txt
mysqldump工具有大量的选项,部分选项如下表:
选项/Option 作用/Action Performed
--add-drop-table
这个选项将会在每一个表的前面加上DROP TABLE IF EXISTS语句,这样可以保证导回MySQL数据库的时候不会出错,因为每次导回的时候,都会首先检查表是否存在,存在就删除
--add-locks
这个选项会在INSERT语句中捆上一个LOCK TABLE和UNLOCK TABLE语句。这就防止在这些记录被再次导入数据库时其他用户对表进行的 *** 作
-c or - complete_insert
这个选项使得mysqldump命令给每一个产生INSERT语句加上列(field)的名字。当把数据导出导另外一个数据库时这个选项很有用。
--delayed-insert 在INSERT命令中加入DELAY选项
-F or -flush-logs 使用这个选项,在执行导出之前将会刷新MySQL服务器的log.
-f or -force 使用这个选项,即使有错误发生,仍然继续导出
--full 这个选项把附加信息也加到CREATE TABLE的语句中
-l or -lock-tables 使用这个选项,导出表的时候服务器将会给表加锁。
-t or -no-create- info
这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。
-d or -no-data 这个选项使的mysqldump命令不创建INSERT语句。
比较完整的使用方法:《MySQL 备份和恢复》
你没有明确是啥数据库系统
,也没有说明导出文件
localhost
.sql是啥格式,根据你提供的导出文件名分析,估计是生成的SQL
scripts(SQL脚本),如果你导出这个脚本包含了整个数据库结构定义及数据,那么你无法直接取出其中某个表定义及数据。但SQL
scripts是可以用简单的文本编辑器或写代码用的编辑工具直接编辑的,你可以用下列方法产生一个只有你需要提取表的定义及数据的脚本:
(1)用编辑器打开localhost.sql文件,用编辑器的查找功能(一般为CTL+F),查找你需要的表名的字串,找到后,保留你需要表的结构定义和
数据项
,将上下不是你需要表的定义和数据删除。另存为另一个文件。(也可以将找到表的部分定义和数据部分复制到新的文件中保存,如何 *** 作,要看脚本的大小,以及你对SQL脚本熟悉程度决定)
(2)利用这个新脚本执行,就导入你需要的表了。
当然,如果是需要在程序中自动执行导入导出,并且导出内容不是由你的程序能选择控制内容,那么,上述方法不适合,你只能先将全部导出内容导入一个临时库,然后将临时库中你需要的表再复制到你实际用的数据库中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)