mysql下生成备份表的命令的语句_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1772 | 回复: 1   主题: mysql下生成备份表的命令的语句        下一篇 
game
注册用户
等级:新兵
经验:36
发帖:61
精华:0
注册:2011-7-23
状态:离线
发送短消息息给game 加好友    发送短消息息给game 发消息
发表于: IP:您无权察看 2015-6-8 15:55:35 | [全部帖] [楼主帖] 楼主

在MySQL中字符串的连接需要使用concat函数,而其它数据库管理系统比如sqlserver&sybase使用+,oracle使用 。Sybase ASE15中也可以用 来连接字符串。
concat函数语法:  concat(str1,str2,....strN)

1.使用mysqldump备份表的简单语法为:

mysqldump -u用户名 -p密码 --default-character-set=字符集 数据库名 表名> 表的备份文件名

例: mysqldump -uroot -pmypasswd --default-character-set=latin1 andkyleeMYTABLE > d:\MYTABLE.SQL

注意:数据库名和表名之间用空格分割。

2.使用mysqldump备份数据库的简单语法为:

mysqldump -u用户名 -p密码 --default-character-set=字符集 --databases 选项 数据库名 >  数据库的备份文件名

例: mysqldump -uroot -pmypasswd --default-character-set=latin1  --databases andkylee > d:\db_andkylee.SQL

如果想在脚本前面加上drop database命令,使用选项:--add-drop-database,

mysqldump -uroot -pmypasswd --default-character-set=latin1  --databases --add-drop-database andkylee > d:\db_andkylee.SQL
在备份数据库的时候,不备份其中某个表,使用选项:--ignore-table=<database>.<table>


例: mysqldump -uroot -pmypasswd --default-character-set=latin1  --databases --add-drop-database --ignore-table=andkylee.pma_bookmark --ignore-table=andkylee.pma_column_info andkylee > d:\db_andkylee.SQL

3.批量生成与上面类似的备份某个数据库内所有表的语句可以使用SQL:

select concat('mysqldump -uroot -pmypasswd --default-character-set=latin1 wwwdbai_myblog ',table_name,' > d:\\wwwdbai_myblog\\',table_name,'.sql') from information_schema.TABLES where table_schema='wwwdbai_myblog';


注意:MySQL字符串中的特殊字符,比如本例子中的反斜杠\需要进行转义,转义字符为:\


4. 查看mysqldump帮助使用选项:--help ,

mysqldump --help


几个比较实用的选项为:

-c, --complete-insert                                 Use complete insert statements.
--default-character-set=name                 Set the default character set.
-e, --extended-insert                                  Use multiple-row INSERT syntax that include several VALUES lists.
--fields-terminated-by=name                   Fields in the textfile are terminated by ...
--ignore-table=name
-n, --no-create-db
-t, --no-create-info
-d, --no-data                                               No row information.
--tables                                                       Overrides option --databases (-B).
-w, --where=name                                    Dump only selected records; QUOTES mandatory!


mysqldump在导出表数据的时候,默认总是导出一个长的insert语句;
如果想要每条记录对应一个insert语句,只需要加选项--extended-insert=false即可。mysqldump中可以看到此参数的默认值为true。
这样在不支持insert多值的数据库中,可以很方便的进行迁移。

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
yr
注册用户
等级:少校
经验:1085
发帖:5
精华:0
注册:2015-1-19
状态:离线
发送短消息息给yr 加好友    发送短消息息给yr 发消息
发表于: IP:您无权察看 2015-6-9 9:28:04 | [全部帖] [楼主帖] 2  楼

andkyleeMYTABLE > d:\MYTABLE.SQL


好麻烦啦 还是喜欢用GUI工作



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论