sql >> Database >  >> RDS >> Mysql

Manieren om te voorkomen dat de opdrachten van MySQLdb niet synchroon lopen; je kunt deze opdracht nu niet uitvoeren (2014) uitzondering

DB-API probeert transacties zelf af te handelen, een transactie te starten bij de eerste opdracht en een eigen API-aanroep te hebben om deze vast te leggen, dus:

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

Naar mijn mening is dit een ernstige, flagrante ontwerpfout van Python's DB-API, waardoor het een serieus gedoe is om commando's uit te voeren buiten transacties om en om de juiste controle over transacties te hebben, bijv. om dingen te gebruiken zoals SQLite's BEGIN EXCLUSIVE TRANSACTION . Het is alsof iemand zonder echte database-ervaring de API mocht ontwerpen...




  1. Waarschuwing:mysqli_query() verwacht dat parameter 1 mysqli is, resource gegeven

  2. kan geen automatisch oplopende primaire sleutel maken met flask-sqlalchemy

  3. Voordelen en beveiliging in de relationele databaseservice van Amazon

  4. SQL-syntaxisfout bij gebruik van UPDATE-databasequery