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

MySQLdbを使用してPythonからSQL分離レベルをどのように変更しますか?

    これはMySQLdbドライバーでは機能しないと思います。個別のクエリを発行する必要があります:

    cur = conn.cursor()
    cur.execute("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
    cur.execute("SELECT @@session.tx_isolation")
    print cur.fetchall()[0]
    cur.execute("SELECT * FROM bar")
    print cur.fetchall()
    cur.execute("SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ")
    cur.execute("SELECT @@session.tx_isolation")
    print cur.fetchall()[0]
    
    # output
    ('READ-UNCOMMITTED',)
    (('foo',), ('bar',))
    ('REPEATABLE-READ',)
    

    MySQLdbカーソルのexecute()メソッドは、セミコロンまでの最初のクエリのみを認識します:

    cur.execute("SELECT * FROM bar WHERE thing = 'bar'; SELECT * FROM bar")
    print cur.fetchall()
    
    # output
    (('bar',),)
    


    1. MariaDB Connector/CによるSQLyog用のKerberos

    2. マージ結合連結によるソートの回避

    3. MySQL:他の日時フィールドに日時を挿入します

    4. PHPmysqliを使用してMySQLで値をインクリメントする方法