这是我的代码:
import mysql.connector
mydb = mysql.connector.connect(host='localhost',
database='glabo',
user='root',
password='.........')
mycursor = mydb.cursor()
mycursor.execute("INSERT INTO orders (o_userid, o_labo, o_jour, o_heure) SELECT users.user_id, labos.l_id, jours.j_id, heures.h_id FROM users, labos, jours, heures WHERE users.user_name = 'Kbayad' AND labos.l_nom = 'LABO 1' AND jours.j_jour = 'Mardi' AND heures.h_heure = '10-12';")
运行此Python代码后,我没有收到任何错误,但数据库中没有任何变化
这可能是因为 Python 中的 MySQL 事务不是自动提交的。
在 MySQL 中,当您执行修改数据的查询(如 INSERT)时,这些更改不会自动保存(或“提交”)到数据库。
您需要使用 commit() 方法显式告诉数据库保存这些更改。
import mysql.connector
mydb = mysql.connector.connect(
host='localhost',
database='glabo',
user='root',
password='.........'
)
mycursor = mydb.cursor()
mycursor.execute("""
INSERT INTO orders (o_userid, o_labo, o_jour, o_heure)
SELECT users.user_id, labos.l_id, jours.j_id, heures.h_id
FROM users, labos, jours, heures
WHERE users.user_name = 'Kbayad'
AND labos.l_nom = 'LABO 1'
AND jours.j_jour = 'Mardi'
AND heures.h_heure = '10-12';
""")
mydb.commit()
mycursor.close()
mydb.close()