我有一个包含所有 mysql 查询的 .sql 脚本。现在假设执行脚本后我想检查查询是否成功运行。在命令行中,如果我们这样做
echo $?
查询成功则返回0,失败则返回1。
不,我想用 python 脚本来完成它。如何才能做到这一点 ?
我的Python脚本:
import mysql.connector
from mysql.connector import errorcode
try:
cnx = mysql.connector.connect(user='myuser', password='mypass', host='127.1.2.3', database='mydb')
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exist")
else:
print(err)
else:
cursor = cnx.cursor()
cursor.executescript("sql_queries.sql")
cnx.close()
最佳答案
您是在谈论让 python 在运行脚本后返回退出代码吗?您想阅读 sys.exit
。
在您的示例中,您可能有类似的内容
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
...
sys.exit(1)
else:
cursor = cnx.cursor()
# Might want to check whether the executescript was successful
try:
cursor.executescript("sql_queries.sql")
except mysql.connector.Error as err:
print(err)
sys.exit(1)
cnx.close()
当然,这个问题已经被问过一段时间了,还有其他相关问题:
- Exit codes in Python
- Exit code when python script has unhandled exception
- Setting exit code in Python when an exception is raised
另外,请考虑将错误消息发送到 stderr,而不是将默认的 print()
保留到 stdout,请参阅:
关于python - 通过python检查查询是否成功运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309594/