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

标签 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()

最佳答案

您是在谈论让 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,请参阅:

关于python - 通过python检查查询是否成功运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31309594/

相关文章:

mysql - 如何在准备好的 SQL 语句中将 [] slice 也传递给非 IN 条件的 IN 条件?

linux - 如何判断当前操作系统是否使用类 Linux 或类 MacOSX 共享库?

bash - 写单行时 echo 是原子的

python - picamera:在后台连续捕捉的同时捕捉一帧

python - 使用opencv,如何去除透明图像中的非对象?

mysql - SQL 触发器 : Create row if row doesn't exist

mysql - 从 S3 文件构建临时表到 Redshift

python - 如何在 Ubuntu 20.04 上全局安装 pip,让所有用户都可以使用相同的方式?

python - 在scrapy爬行中使用css选择器提取span之外的文本

java - 在 java 中为 nashorn 启用脚本模式