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 ...
随机推荐
- smarty 模板编译和变量调节器 模板引入
<?php require './smarty/Smarty.class.php'; $sm = new Smarty; //$sm->force_compile = true; $sm- ...
- 莫名其妙的js基础学习!
JavaScript基本组成部分: 1,ECMAScript:js的语法标准,基本的变量,运算符,函数,if语句,for语句等 2,DOM:操作网页上的元素API,比如盒子的移动,变色,轮播图等. 3 ...
- Vim使用YouCompleteMe达到类似IDE的代码提示、补全,以及其他实用设置
接触Linux有两年了,vim还是只会简单的操作.最近实在受不了sublime的代码提示,决定花点时间来配置下vim.本文讲自己认为方便的vim配置,称不上完美,只讲究简单实用. 使用 ctags 主 ...
- hadoop之 Hadoop2.2.0中HDFS的高可用性实现原理
在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在单点故障(single point of failure),每一个集群中存在一个NameNode,如果NN所在的机器出现了故障 ...
- (转)Android自定义属性时format选项( <attr format="reference" name="background" /> )
Android自定义属性时format选项可以取用的值 1. reference:参考某一资源ID. (1)属性定义: [html] view plaincopyprint? <declar ...
- SharePoint2013集成Exchange之任务同步
SharePoint可以将任务列表到outlook中,但在sharepoint 2013 上这个功能似乎不是很好用,如下图所示,点击任务列表的"同步到Outlook"按钮: 在弹出 ...
- [转载]嵌入式linux启动时运行的inittab文件
源地址:https://www.cnblogs.com/yfz0/p/5853826.html 嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要 ...
- Java 面向对象 初探
public class test { public static void main(String[] args) { // 利用new关键字创建了一个Person对象 Person p = new ...
- 使用SLF4J和LOGBACK (一 : 基本使用)
1.SLF4J是什么? slf4j是一个日志门面,它不是具体的日志实现框架,而是提供了通用的日志接口,按个人理解来说,是通过接口实现多态,来满足应用在不同日志框架间切换的需求. 例如在程序中我们需要记 ...
- idea 破解代码
下面是idea的破解方法,手动执行对应的main方法即可.亲测Idea 14 完美破解~~废话少说,上代码... package com.jd.serializable; import java.ma ...