MySQL: delete and insert in one commit statement in python -


i have simple question: using mysql , python. want refill table first deleting it's content , subsequently inserting new data. however, don't want have empty table (or @ least very short moment) during process.

so, far remember can combine several sql commands , commit them database. ensured works described me. i'm wondering if guess correct?

        conn = mysql.connector.connect( **configuration.conn_params )         c = conn.cursor()          sql = """delete mytable;"""         c.execute( sql )          sql = """insert mytable                     ( col1, col2, col3 )                  values                      ( val1, val2, val3);"""          c.execute( sql )         conn.commit() #run deletion , insertion of table data "simultaneously"         conn.close() 

provided that:

  1. mytable uses transactional storage engine (e.g. innodb); and

  2. you not override default (false) value of autocommit connection argument

then, perspective of other database session, 2 operations performed atomically (as one): there no instant in see intermediate state in database (i.e. records have been deleted, new ones have not yet been inserted).


Comments