检查查询是否通过python成功运行

时间:2015-07-09 06:21:03

标签: python mysql bash

我有一个包含所有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()

1 个答案:

答案 0 :(得分:0)

你在谈论让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()

当然,这已经被问到了一段时间以及其他相关的问题:

另外请考虑将错误消息发送到stderr而不是将默认print()发送到stdout,请参阅: