需要使用pymysql包来连接mysql,使用python读取和写入数据到mysql中。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pymysql
'''
建表语句:
CREATE TABLE `train_data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`vid` varchar(60) DEFAULT NULL COMMENT '用户id',
`table_id` varchar(10) DEFAULT NULL COMMENT '项目id',
`field_results` varchar(3000) DEFAULT NULL COMMENT '检查结果',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE = InnoDB CHARSET = utf8 COMMENT '训练数据信息表';
'''
# 连接数据库,host:数据库服务器ip,port:数据库端口,user:用户名,passwd:密码,db:数据库,charset:字符集
conn = pymysql.connect(host='127.0.0.1', port=3306, user='dev', passwd='dev', db='meinian', charset='utf8')
conn.autocommit(1)
cursor = conn.cursor()
#从mysql查询数据,得到训练集
cursor.execute("SELECT ta.vid AS vid, table_id, field_results FROM `data_part1` ta JOIN train_user_info tb ON ta.vid = tb.vid")
#从游标中读取所有数据
trainData = cursor.fetchall()
#把数据写到mysql中
cursor.executemany('INSERT INTO train_data(vid, table_id, field_results) values(%s, %s, %s)', trainData)
cursor.execute("SELECT ta.vid AS vid, table_id, field_results FROM `data_part2` ta JOIN train_user_info tb ON ta.vid = tb.vid")
trainData = cursor.fetchall()
print("体检训练集的记录数:", len(trainData))
#训练集数据写到mysql的train_data表中
cursor.executemany('INSERT INTO train_data(vid, table_id, field_results) values(%s, %s, %s)', trainData)
#关闭链接
cursor.close()
conn.close()