设为首页 加入收藏

TOP

Python导出MySQL数据库中表的建表语句到文件(二)
2018-03-18 16:21:21 】 浏览:166
Tags:Python 导出 MySQL 数据库 中表 语句 文件
os.chdir(mysql_file_path)
            #表名
            dbtable = row[0]
            #文件名
            exportfile =  row[0] + '.sql'
            # mysqldump 命令
            sqlfromat = "%s -h%s -u%s -p%s -P%s %s %s >%s"
            # 生成相应的sql语句
            sql = (sqlfromat % (mysqldump_commad_dict['dumpcommad'],
                                mysqldump_commad_dict['server'],
                                mysqldump_commad_dict['user'],
                                mysqldump_commad_dict['password'],
                                mysqldump_commad_dict['port'],
                                mysqldump_commad_dict['db'],
                                dbtable,
                                exportfile))
            print(sql)
            result = os.system(sql)
            if result:
                print('export ok')
            else:
                print('export fail')


if __name__ == '__main__':
    main()


建库测试


create database test_database
charset utf8mb4 collate utf8mb4_bin;


use test_database;



create table table_a
(
    id int auto_increment not null,
    name varchar(100) unique,
    create_date datetime,
    primary key pk_id(id),
    index idx_create_date(create_date)
);


insert into table_a(name,create_date) values ('aaaaaa',now());
insert into table_a(name,create_date) values ('bbbbbb',now());


create table table_b
(
    id int auto_increment not null,
    name varchar(100) unique,
    create_date datetime,
    primary key pk_id(id),
    index idx_create_date(create_date)
);
insert into table_b(name,create_date) values ('aaaaaa',now());
insert into table_b(name,create_date) values ('bbbbbb',now());


执行的时候会提示一个警告,但是不影响最终的结果


mysqldump: [Warning] Using a password on the command line interface can be insecure.



导出建表语句会根据表的数据情况编号自增列,这是mysqldump的问题而不是导出的问题,如果有必要可以需求做相应的修改



去掉mysqldump导出表结构中备注信息


import os


filepath = "D:\\mysqlscript"
# 切换到新建的文件夹中
os.chdir(filepath)
pathDir = os.listdir(filepath)
for file in pathDir:
    lines = open(file, "r")
    content = "use ***;"
    content = content + "\n"
    for line in lines:
        print(line)
        if not (str(line).startswith("--") or str(line).startswith("/*")

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇MySQL 8.0 新增SQL语法对窗口函数.. 下一篇es的索引合并

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目