问题1:不导入重复数据
处理方式:
1.可以把数据先导入,导入完后执行(truncate table tatble_name; )删除重复
2.导入语句的筛选(主键自增无法生效) https://blog.csdn.net/qq_37273544/article/details/85284626
3.添加多列唯一索引(会存在警告)
https://www.cnblogs.com/a-du/p/7117837.html
4.代码判断,存在不插入,不存在插入
https://blog.csdn.net/qq_32331997/article/details/84834623
问题2:插入完打印插入条数及数据
**需要注意:**
建立表:字段:字符集需为gbk 或 utf-8
CREATE TABLE `test` (
`a` char(20) CHARACTER SET gbk NOT NULL,
`last` char(20) CHARACTER SET gbk NOT NULL,
`income` char(30) CHARACTER SET gbk DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
练习(多sheet导入):
# -*- coding:utf-8 -*-
'''
参考:https://www.cnblogs.com/longbigbeard/p/9309180.html
【多sheet导入test&test1表】
使用 pymysql 数据库操作
使用 xlrd 读取excel
逻辑:excel数据先写到list列表,再通过cursor.executemany(sql, list)一次性写入数据库
【导入逻辑】:
1.获取excel的sheet名
2.获取数据库的表名
3.sheet名与表名判断是否匹配,如果匹配就导入该sheet数据到数据库表
'''
import pymysql
import xlrd
import datetime
db_name = 'test'
excel_file = 'example.xls'
db = {
} # 全局变量
book = {
}
try:
db = pymysql.connect (host="47.96.109.254", port=3306, user="test", passwd="test", db=db_name)
except:
print("could not connect to mysql server!")
try:
book = xlrd.open_workbook(excel_file) # 文件名,把文件与py文件放在同一目录下
except:
print("open excel file failed!")
# print(db)
# print(book)
def get_db_table_names():
"""获取数据库表名"""
cursor = db.cursor()
sql = '''SHOW TABLES'''
cursor.execute(sql)
table_names = [