Mysql
 sql >> Base de données >  >> RDS >> Mysql

Mettre à jour la base de données avec plusieurs instructions SQL

Enfin après une longue recherche de docs et d'aide. J'ai pu résoudre le problème.

Utiliser un for boucle à cursor.execute avec multi=True travaillé. Je ne sais pas pourquoi nous devons faire une boucle.

for result in cursor.execute(SQL, multi=True):
    pass

Sans boucle juste cursor.execute(SQL, multi=True) n'a apporté aucune modification à la base de données.

import mysql.connector

cnx = mysql.connector.connect(user='scott', database='test')
cursor = cnx.cursor()

SQL = '''
    update my_table 
    set 
    LAY = 'P6682'
    , BLK = 'P6682'
    , ANI = 'P6682'
    where
    Shot = 'SH01';

    update my_table 
    set 
    LAY = '1863'
    , BLK = '1863'
    , ANI = '1863'
    where
    Shot = 'SH02'
'''

for result in cursor.execute(SQL, multi=True):
    pass

cnx.commit()
cur.close()
cnx.close()
cnx.disconnect()