使用 python 操作 MySQL 数据库 (查询-删除-插入)

 

使用 python 操作 MySQL 数据库   (查询-删除-插入)


1、查询  数据库的表中 是否 有记录;

2、若存在,删除

3、插入 记录

二、代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Sep 23 09:12:43 2020

@author: dujidan
"""

import pymysql

def save_list_into_database(database_name, table_name, sample_id, add_info_list):
    sample_id = sample_id_to_accession(sample_id)
    # Connect to the database
    conn_success = False
    retry_counts = 0
    connection = pymysql.connect(host='0.0.0.0',
                                 user='user',
                                 password='pwd',
                                 db=database_name,
                                 cursorclass=pymysql.cursors.DictCursor)
    while not conn_success and retry_counts < 5:
        try:
            with connection.cursor() as cursor:
                sql = 'SELECT SAMPLE_ID FROM `{table_name}` WHERE SAMPLE_ID="{sample_id}" LIMIT 1;'.format(table_name=table_name, sample_id=sample_id)
                n_inquire = cursor.execute(sql)
                if n_inquire == 1:
                    sql = 'DELETE FROM `{table_name}`  WHERE SAMPLE_ID="{sample_id}";'.format(table_name=table_name, sample_id=sample_id)
                    n_get = cursor.execute(sql)
                sql = 'INSERT INTO `{table_name}` VALUES {add_info_list};'.format(table_name=table_name, add_info_list=', '.join(add_info_list))
                # print(sql)
                cursor.execute(sql)
                connection.commit()
                conn_success = True
        except Exception as conn_exp:
            print (conn_exp)
            retry_counts += 1
            sleep(0.5)
    connection.close()
    return []

if __name__ == "__main__":
    save_list_into_database(database_name, table_name, sample_id, add_info_list)

 

 

# 追加 或 更新
sql = "INSERT INTO `sample_information` (`date`, `accession`, `name`, `gender`, `age`) \
                    VALUES {insert_list} ON DUPLICATE KEY UPDATE \
                    date = VALUES(date),\
                    accession = VALUES(accession),\
                    name = VALUES(name),\
                    gender = VALUES(gender),\
                    age = VALUES(age)".format(insert_list = ','.join(insert_list))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值