背景:

  一般来说,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语句的更多相关文章

  1. Springboot接口简单实现生成MySQL插入语句

    Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...

  2. python 3 mysql sql逻辑查询语句执行顺序

    python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...

  3. Python操作Mysql数据库时SQL语句的格式问题

    一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...

  4. [置顶] LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句

    LOAD语句:利用MSSQL中的xp_cmdshell功能,将指定文件夹下的指定文件,生成mysql的LOAD语句 declare @sql varchar(4000), @dirpath varch ...

  5. MySQL基础语句与其在Python中的使用

    一.MySQL基础语句 $ mysql -u root -p (有密码时) $ mysql -u root     (无密码时) QUIT (or \q)  退出 查看当前所有数据库 show dat ...

  6. python操作MySQL,SQL注入的问题,SQL语句补充,视图触发器存储过程,事务,流程控制,函数

    python操作MySQL 使用过程: 引用API模块 获取与数据库的连接 执行sql语句与存储过程 关闭数据库连接 由于能操作MySQL的模块是第三方模块,我们需要pip安装. pip3 insta ...

  7. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  8. 使用 python 管理 mysql 开发工具箱 - 1

    Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...

  9. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

随机推荐

  1. sailsjs 不用写代码就能生成rest api 代码

    1. 脚手架安装 npm install sails -g     2. 生成基本项目 a. 项目 sails new appdemo b. 创建api sails new api demoapi a ...

  2. docker怎么破?

    为什么要装docker? 因为linux服务器不好用,很多操作不好进行,比如安装包没有管理员权限 docker可以访问本地显卡,比一般的virtual box 或者VMware都要好 怎么装docke ...

  3. sed命令n,N,d,D,p,P,h,H,g,G,x解析

    1.sed执行模板=sed '模式{命令1;命令2}'即逐行读入模式空间,执行命令,最后输出打印出来2.为方便下面,先说下p和P,p打印当前模式空间内容,追加到默认输出之后,P打印当前模式空间开端至\ ...

  4. PES包格式

    PES是Packetized Elementary Stream的简称,是将原始ES流打包后形成的,再将PES经过不同的打包方式可以组成MPEG program stream 和 MPEG trans ...

  5. 安装ecb

    mac emacs上安装ecb,通过elpa折腾得要死,死活无法使用. 解决办法:下载https://github.com/alexott/ecb,添加路径,(require 'ecb),直接ok.

  6. java根据特定密钥对字符串进行加解密

    package com.test; import java.io.IOException; import java.security.SecureRandom; import javax.crypto ...

  7. hadoop中的一次集群任务执行超时问题查找过程

    问题背景 本次进行一个项目的重构,在某些活动数据量比较大的情况下,会偶尔出现1200s超时的情况,如下: AttemptID:attempt_1410771599055_11709_m_000033_ ...

  8. submit提交表单

    <!DOCTYPE html><html><head> <script src="jquery-1.3.2.min.js">< ...

  9. 第一章 先把Kubernetes跑起来

    1.1 先跑起来 k8s官网已经为大家准备好了一个现成的最小可用系统.  https://kubernetes.io/docs/tutorials/kubernetes-basics/ 1.2 创建K ...

  10. C语言和C++中的字符串(string)

    知识内容: 1.C\C++字符串简述 2.C字符串相关操作 3.C++ string类相关操作 一.C\C++字符串简述 1.C语言字符串 C语言字符串是字符的数组.单字节字符串顺序存放各个字符串,并 ...