sql >> Databáze >  >> RDS >> Mysql

Aktualizujte databázi pomocí více příkazů SQL

Konečně po dlouhém výzkumu dokumentů a nápovědy. Mohl jsem problém vyřešit.

Pomocí for smyčka na cursor.execute s multi=True pracoval. Nevím, proč musíme procházet.

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

Bez smyčky stačí cursor.execute(SQL, multi=True) neprovedl žádné změny v databázi.

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


  1. Jaký je rozdíl mezi MySQL, MySQLi a PDO?

  2. Liquibase/PostgreSQL:jak správně zachovat případ tabulky?

  3. Jak mohu zkombinovat více řádků do seznamu odděleného čárkami v SQL Server 2005?

  4. SQL:velké pouze první písmeno