为什么 mySQL 查询 INSERT INTO 不显示 SELECT

Why mySQL queries INSERT INTO does not show up with SELECT

我正在使用 mySQL 和 python 创建并填充数据库。我使用 MySQL Workbench 实时可视化我的数据库。我的一个功能是向 table 添加一个新行:

def addValue(name,time,active):
    print ("Adding a value : " + name + " at " + time + " is active ? " + str(active))
    try:
        mydb = mysql.connector.connect(
              host="localhost",
              user="username",
              password="password",
              database="alarm"
                )

        cursor = mydb.cursor()
        cursor.execute("INSERT INTO Alarm (Name, Time, Active) VALUES (%s,%s,%s)",(name,time,active))
        print ("1 Alarm added to the Table")

    except mysql.connector.Error as error:
        print("Failed to add data to Table Alarm : {}".format(error))

    finally:
        if (mydb.is_connected()):
            cursor.close()
            mydb.close()
            print("Connection closed\n")

此函数不会输出任何错误,但新行不会显示在我的 Table 中(即使使用硬编码值而不是变量)。我知道这个查询被考虑在内的原因是因为当我用 MySQL Workbench 检查 table 并且我手动添加具有相同查询的行时,主键会自动增加。

另一方面,当我使用以前的函数添加数据时,我的允许我显示此 table 行的函数不起作用,而当手动添加行时它工作正常MySQL Workbench.

PEP 249(Python 数据库 API 规范 v2.0)指定 auto-commit 最初必须关闭(https://www.python.org/dev/peps/pep-0249/#commit)。

但是你可以在connect()方法中开启它。

mydb = mysql.connector.connect(
    host="localhost",
    user="username",
    password="password",
    database="alarm",
    autocommit=True)