为什么 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)
我正在使用 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)