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

Způsoby, jak se vyhnout synchronizaci příkazů MySQLdb; tento příkaz nelze spustit nyní (2014) výjimka

DB-API se pokouší zpracovat transakce samo o sobě, zahájí transakci prvním příkazem a má své vlastní volání API, které ji potvrdí, takže:

cursor.execute( "CREATE TABLE t1 ( t1_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()
cursor.execute( "CREATE TABLE t2 ( t2_id INT PRIMARY KEY AUTO_INCREMENT )" )
cursor.commit()

Podle mého názoru se jedná o vážnou, do očí bijící chybu návrhu pythonského DB-API, takže je vážný problém spouštět příkazy mimo transakce a mít řádnou kontrolu nad transakcemi, např. používat věci jako BEGIN EXCLUSIVE TRANSACTION od SQLite . Je to, jako by někdo bez skutečných zkušeností s databází mohl navrhnout API...




  1. Jak vytvořím fond připojení MySQL při práci s NodeJS a Express?

  2. Jak rozdělit DATE a TIME z DATETIME v MySQL

  3. mysql - Jak zacházet s hledáním pomocí speciálních znaků /(lomítko) a \(zpětné lomítko)

  4. Jak funguje funkce MATCH() v MySQL