我有一个非常简单的问题:我使用MySQL和Python。我想先删除表的内容,然后再插入新数据来填充表。但是,在这个过程中,我不希望有一个空表(或者至少在很短的时间内)。在
所以,据我所知,我可以组合几个SQL命令,然后将它们提交到数据库中。这就保证了我所描述的一切工作正常。所以我想知道我的猜测是否正确?在
conn = mysql.connector.connect( **Configuration.conn_params )
c = conn.cursor()
sql = """DELETE FROM mytable;"""
c.execute( sql )
sql = """INSERT INTO mytable
( col1, col2, col3 )
VALUES
( val1, val2, val3);"""
c.execute( sql )
conn.commit() #run the deletion and insertion of table data "simultaneously"
conn.close()
前提是:
mytable
使用事务存储引擎(例如InnoDB);并且不重写
autocommit
连接参数的默认(false)值然后,从任何其他数据库会话的角度来看,这两个操作将以原子方式执行操作(作为一个):它们不会在数据库中看到中间状态(即记录已被删除,但新记录尚未插入)。在
相关问题 更多 >
编程相关推荐