sql >> データベース >  >> RDS >> Mysql

複数のSQLステートメントでデータベースを更新する

    ついに、ドキュメントとヘルプに関する長い調査の結果。私は問題を解決することができました。

    forを使用する cursor.executeでループします multi=Trueを使用 働いた。なぜループする必要があるのか​​わかりません。

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

    ループなしでcursor.execute(SQL, multi=True) データベースに変更を加えませんでした。

    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. PostgreSQLで月番号を月名に変換する

    2. MySQL:同じテーブルを複数回結合するにはどうすればよいですか?

    3. PostgreSQL 13の新機能は何ですか?

    4. PythonとSQLiteの警告