1.对于插入最好方法是 1000条一次执行
2.对于mysql INSERT INTO TBL_TEST (id) VALUES (1), (2), (3)
3.对于oracle
insert into Student(id, name, sex, age, tel)
select '27', 'jack', '男', 22, '13345674567' from dual
union select '35', 'jack', '男', 22, '13345674567' from dual
union select '36', 'jack', '男', 32, '13345674567' from dual
union select '37', 'jack', '男', 22, '13345674567' from dual
union select '38', 'jack', '男', 32, '13345674567' from dual
union select '39', 'jack', '男', 22, '13345674567' from dual
union select '40', 'jack', '男', 32, '13345674567' from dual
union select '41', 'jack', '男', 22, '13345674567' from dual
union select '42', 'jack', '男', 32, '13345674567' from dual
union select '43', 'jack', '男', 22, '13345674567' from dual
union select '44', 'jack', '男', 32, '13345674567' from dual
union select '45', 'jack', '男', 22, '13345674567' from dual
union select '46', 'jack', '男', 32, '13345674567' from dual
union select '47', 'jack', '男', 22, '13345674567' from dual
union select '48', 'jack', '男', 32, '13345674567' from dual
union select '49', 'jack', '男', 22, '13345674567' from dual
union select '50', 'jack', '男', 32, '13345674567' from dual
union select '60', 'jack', '男', 32, '13366676667' from dual
union select '61', 'jack', '男', 22, '13366676667' from dual
union select '62', 'jack', '男', 32, '13366676667' from dual
union select '63', 'jack', '男', 22, '13366676667' from dual
union select '64', 'jack', '男', 32, '13366676667' from dual
union select '65', 'jack', '男', 22, '13366676667' from dual
union select '66', 'jack', '男', 32, '13366676667' from dual
union select '67', 'jack', '男', 22, '13366676667' from dual
union select '68', 'jack', '男', 32, '13366676667' from dual
union select '69', 'jack', '男', 22, '13366676667' from dual
python 处理 mysql 文件
# -*- coding:utf-8 -*-
from tkinter import *
import tkinter.filedialog
import pymysql.cursors
def xz():
filename1=tkinter.filedialog.askopenfilename()
if filename1 != '':
lb.config(text=u'您选择的文件是'+filename1)
return filename1
else:
lb.config(text=u'您没有选择任何文件')
def demo1(res):
# print(11)
with open(res, encoding='utf-8', mode='r') as f:
# 读取整个sql文件,以分号切割。[:-1]删除最后一个元素,也就是空字符串
sql_list = f.read().split(';')[:-1]
print(len(sql_list))
sql_item=''
num=1
str1=''
list=[]
for i in range(0,len(sql_list)):
if num<1000:
if str1=='':
str1=sql_list[i]
num+=1
else:
str1+=','+sql_list[i].split('VALUES')[1]
num+=1
else:
str1+=';'
runsq(str1)
num=1
str1=""
runsq(str1)
print(str1)
lb = Label(root, text='')
lb.config(text=u'插入完毕')
lb.pack()
# for x in sql_list:
# print(x)
# 判断包含空行的
# if '\n' in x:
# # 替换空行为1个空格
# x = x.replace('\n', ' ')
# x=x+';'
# # sql语句添加分号结尾
# sql_item +=x
# sql_item += x
# print(sql_item)
def runsq(sql):
print(123)
db = pymysql.connect("localhost", "user", "passwd", "database")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
print(333333)
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print(22222)
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
root = Tk()
lb = Label(root,text='')
lb.pack()
btn=Button(root,text=u'选择第一个文件',command= xz)
btn.pack()
res=xz()
button1 = Button(root,text=u"下载", bg="lightblue", width=10,
command=lambda :demo1(res)) # 调用内部方法 加()为直接调用
button1.pack()
root.mainloop()
网友评论