Python 生成MYSQL inser语句
背景:
一般来说,navicat生成的insert已经够用了
如果说一张表有2,30个字段,每个字段还得一一对上,其实是很难的。所以抽空写了个小程序。用它完全不用担心字段对不上了。因为没有时间,需要手动和程序一起执行,但平时用用也是够了,,如果会改的话,可以自己修改。大概思路就这样:先去information_schema库里把字段和说明取出来,再拼接成insert
环境是python2.7
- filename ='user_base_info'
- file = open('c:\\table\\new\\'+filename+'.txt', 'r') #sql文件地方
- sql_filds=''
- sql_values=''
- while 1:
- line = file.readline()
- arr = line.replace("\n", "").split('$') #
- if len(arr) ==4:
- sql_filds+=arr[0]+','
- sql_values+='\'\',/*'+arr[1].replace(";","")+'_'+arr[2]+'_'+arr[3]+'_'+arr[0]+'*/\n'
- if not line:
- break
- pass
- sql_filds =sql_filds[:-1]
- sql_values=sql_values[:-1]
- #sql_values=sql_filds[0:len(sql_values)-1];
- # print sql_filds
- #print sql_values
- sql='insert into '+filename+'('+sql_filds+')\n values \n('+sql_values+');'
- print sql
怎么使用:
1、先执行sql 查询出表里的字段和对应的说明。在mysql中,每个数据库都对应有一个对应架构的数据库information_schema,这个库可以查出表的所有字段和说明。
- SELECT COLUMN_NAME,COLUMN_COMMENT,COLUMN_TYPE,IS_NULLABLE FROM `COLUMNS` t where t.TABLE_NAME ='t_user_base_info' and t.TABLE_SCHEMA='gamemall_ucenter';
2、导出,将上面的数据导出为以下这种格式,并保存在一个地方
导出后,文件格式为:
- uid$用户ID$bigint(20)$NO
- account$喵号$bigint(20)$NO
- avatar$头像路径$varchar(256)$YES
- user_name$用户昵称$varchar(30)$NO
- gender$性别(0-男,1-女)$smallint(1)$YES
- birthdate$出生日期$date$YES
- user_status$用户状态(0-正常,1-冻结)$smallint(1)$NO
- first_zm$首字母$varchar(1)$YES
- sign_name$用户签名$varchar(100)$YES
- area$用户所在地区$varchar(20)$YES
- user_register_chl$用户所属渠道号$varchar(50)$YES
- has_identified$1、是,2、否$smallint(6)$YES
- ctime$创建时间$int(11)$NO
- utime$更新时间$int(11)$NO
3、修改代码
- filename ='user_base_info'
- file = open('c:\\table\\coupon\\'+filename+'.txt', 'r') // sql文件地方
4、执行结果,注意后面多了一个逗号,需要手动去掉。这样就可以一个一个字段对起来啦
- insert into user_base_info(uid,account,avatar,user_name,gender,birthdate,user_status,first_zm,sign_name,area,user_register_chl,has_identified,ctime,utime)
- values
- ('',/*用户ID_bigint(20)_NO_uid*/
- '',/*喵号_bigint(20)_NO_account*/
- '',/*头像路径_varchar(256)_YES_avatar*/
- '',/*用户昵称_varchar(30)_NO_user_name*/
- '',/*性别(0-男,1-女)_smallint(1)_YES_gender*/
- '',/*出生日期_date_YES_birthdate*/
- '',/*用户状态(0-正常,1-冻结)_smallint(1)_NO_user_status*/
- '',/*首字母_varchar(1)_YES_first_zm*/
- '',/*用户签名_varchar(100)_YES_sign_name*/
- '',/*用户所在地区_varchar(20)_YES_area*/
- '',/*用户所属渠道号_varchar(50)_YES_user_register_chl*/
- '',/*1、是,2、否_smallint(6)_YES_has_identified*/
- '',/*创建时间_int(11)_NO_ctime*/
- '',/*更新时间_int(11)_NO_utime*/); -- 这里的逗号要去掉 加了红色的背景色那
Python 生成MYSQL inser语句的更多相关文章
- Springboot接口简单实现生成MySQL插入语句
Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...
- Python操作Mysql数据库时SQL语句的格式问题
一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...
- [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句
LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...
- MySQL基础语句与其在Python中的使用
一.MySQL基础语句 $ mysql -u root -p (有密码时) $ mysql -u root (无密码时) QUIT (or \q) 退出 查看当前所有数据库 show dat ...
- python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数
python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- 使用 python 管理 mysql 开发工具箱 - 1
Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...
- Python 操作 MySQL 之 pysql 与 ORM(转载)
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
随机推荐
- (转)如何获得当前ListVIew包括下拉的所有数据?
ListView listView = activity.getListView();获取的仅仅是当前屏幕显示的list,但是具有下拉信息,不在当前屏幕,但是下拉显示的数据无法或得到.谁知道如何获得当 ...
- Web 漏洞分析与防御之 CSRF(二)
原文地址:Web 漏洞分析与防御之 CSRF(二) 博客地址:http://www.extlight.com 一.全称 跨站请求伪造(Cross-site Request Forgery) 二.原理 ...
- Java-Runoob:Java Character 类
ylbtech-Java-Runoob:Java Character 类 1.返回顶部 1. Java Character 类 Character 类用于对单个字符进行操作. Character 类在 ...
- UE4 代码总结
1.创建关卡类 1.创建C++类继承LevelScriptActor 2.打开关卡蓝图 Class Settings->Parent Class 选择你之前创建好的C++类 遇到的问题: 1.T ...
- Windows2012使用笔记
一.介绍 win 2012的名字于北京时间2012年4月18日公布,全称Windows Server 2012(下面简称win 2012),正式版于2012年9月4日发布.这是一套基于Windows ...
- 【BZOJ】2809: [Apio2012]dispatching(左偏树)
题目 传送门:QWQ 分析 显然是一个资瓷合并的堆 现学了一发左偏树:教程 然后就没了 代码 #include <bits/stdc++.h> #define lc son[x][0] # ...
- yum ftp本地源
一. 准备工作1. 安装系统centos7.32. 环境 10.10.10.14 controller-1 10.10.10.15 computer-1 3. 在14主机上安装FTP服务yum ins ...
- python 打造一个sql注入脚本 (一)
0x00前言: 昨天刚刚看完小迪老师的sql注入篇的第一章 所以有了新的笔记. 0x01笔记: sql注入原理: 网站数据传输中,接受变量传递的值未进行过滤,导致直接带入数据库查询执行的操作. sql ...
- 【转】几款移动跨平台App开发框架比较
原文地址:https://www.cnblogs.com/songxingzheng/p/6482697.html 整理目前流行的跨平台WebApp开发技术的特点,仅供参考. 每个框架几乎都包含以下特 ...
- WEB服务重要基础
1.1用户访问房展基本流程 我们每天都会使用Web客户端上网浏览网页.最常见Web客户端就是Web浏览器,如通过的微软InternetExplorer(IE)以及技术人员偏爱的火狐浏览器.谷歌浏览器等 ...