mysql下生成备份表的命令的语句

在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 andkylee MYTABLE > 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多值的数据库中,可以很方便的进行迁移。

  • 本文链接地址:http://www.dbainfo.net/mysql-generate-mysqldump-command-with-query.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《mysql下生成备份表的命令的语句》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)