[python] python执行mysql
最近工作中,遇到一个问题。每次升级包的时候,需要重置数据中一些数据,于是我每次都要连接数据库,然后手写sql执行,很麻烦。于是就有了下面的脚本可以,这样就可以一键重置数据库了。#!/usr/bin/python# -*- coding: utf-8 -*-import MySQLdbdb = MySQLdb.connect("localhost", "root", "root", "TESTDB"
·
最近工作中,遇到一个问题。每次升级包的时候,需要重置数据中一些数据,于是我每次都要连接数据库,然后手写sql执行,很麻烦。于是就有了下面的脚本可以,这样就可以一键重置数据库了。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb
db = MySQLdb.connect("localhost", "root", "root", "TESTDB", charset='utf8')
# 获取游标
cursor = db.cursor()
# SQL语句
sqls = ['delete from TAB1',
'delete from TAB2',
'delete from TAB3',
'INSERT INTO TAB4(ID, HOST_ID, STATUS) VALUES(1, "127.0.0.1", 4)']
try:
# 执行SQL
for sql in sqls:
cursor.execute(sql)
# 提交
db.commit()
except:
# 异常时回滚
db.rollback()
# 关闭连接
db.close()
同样,使用shell脚本也可以, 这也是我首先想到的方案,可是python比起来总觉得少那么点美感
#!/bin/bash
HOSTNAME="127.0.0.1"
PORT="3306"
USERNAME="root"
PASSWORD="root"
DBNAME="TESTDB"
sql="delete from TAB1"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${sql}"
sql="delete from TAB2"
mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${sql}"
更多推荐
已为社区贡献2条内容
所有评论(0)