Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果在更新之前进行插入,是否需要提交代码?_Python_Mysql - Fatal编程技术网

Python 如果在更新之前进行插入,是否需要提交代码?

Python 如果在更新之前进行插入,是否需要提交代码?,python,mysql,Python,Mysql,我有以下SQL: INSERT IGNORE... UPDATE ITEM... 我需要在这两条语句之间执行conn.commit()吗?或者我可以在最后提交所有内容,并且更新将自动拾取SQL中“暂存提交”的项吗 self.cursor.execute('INSERT IGNORE INTO main_catalog (apple_id, provider_id) VALUES (%s, %s)', (apple_id, provider_obj)) self.conn.commit() #

我有以下SQL:

INSERT IGNORE...
UPDATE ITEM...
我需要在这两条语句之间执行conn.commit()吗?或者我可以在最后提交所有内容,并且更新将自动拾取SQL中“暂存提交”的项吗

self.cursor.execute('INSERT IGNORE INTO main_catalog (apple_id, provider_id) VALUES (%s, %s)', (apple_id, provider_obj))
self.conn.commit() # IS THIS NEEDED HERE?
self.cursor.execute('''UPDATE main_catalog SET 
                       show_title=%s, artwork_apple_url=%s, title=%s, itunes_url=%s, 
                       network_name=%s, video_length=%s, episode_production_number=%s, 
                       synopsis=%s, date_last_updated_affiliate=NOW()''',
                       (show_title, artwork_apple_url, episode_title, itunes_url, network_name, video_length, episode_production_number, synopsis))
不,除非关闭连接,否则永远不需要提交。它可以在长语句之间使用,以保存当前状态并获得更好的性能,但即使没有提交,以前的修改也存在,它们只是在提交之前(甚至在使用自动提交之前)不会保存到磁盘


不建议提交临时状态,因为在两次提交之间,您处于一个事务中,这意味着您可以确保您的所有更改都将完成,或者没有更改,这通常是可取的。因此,如果没有任何迹象表明情况并非如此,请只提交稳定的数据。

谢谢您的解释。你建议在中间进行承诺吗?或者就在最后?@David542这取决于插入的数据是否巨大,这可能会提高性能,或者如果您的数据真的很重要,可能您希望经常提交,否则只需在最后提交一次。