Seems a lot of wrappers are moving away from autocommit for performance reasons. <br>
pysqlite has removed it as of the alphra 2.0<br><br><div><span class="gmail_quote">On 4/20/05, <b class="gmail_sendername">Danny Yoo</b> &lt;<a href="mailto:dyoo@hkn.eecs.berkeley.edu">dyoo@hkn.eecs.berkeley.edu</a>&gt; wrote:
</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br><br>On Tue, 19 Apr 2005 <a href="mailto:tpc@csua.berkeley.edu">tpc@csua.berkeley.edu
</a> wrote:<br><br>&gt; hi all, while recently trying to insert some data into the following<br>&gt; table:<br>&gt;<br>&gt; # stores unique course definitions<br>&gt; CREATE TABLE adminCourses (<br>&gt; ID TINYINT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
<br>&gt; Code CHAR(6),<br>&gt; Title VARCHAR(55),<br>&gt; Units TINYINT UNSIGNED<br>&gt; ) TYPE = InnoDB;<br>&gt;<br>&gt; I got a 1L value when I ran the following:<br>&gt;<br>&gt; cursor.execute(&quot;INSERT INTO adminCourses(ID, Code, Title, Units) VALUES
<br>&gt; (NULL, 'EAT100', 'Josue', 30);&quot;)<br><br>Hi Tpc,<br><br>Do you know if MySQLdb still continues to use AUTOCOMMIT mode, or has this<br>been changed in new releases of the module?&nbsp;&nbsp;According to PEP 249:<br><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.python.org/peps/pep-0249.html">http://www.python.org/peps/pep-0249.html</a><br><br>Database modules that conform to the standard are required to keep from<br>doing autocommits:<br><br>&quot;&quot;&quot;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commit
any pending transaction to the database. Note that<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if
the database supports an auto-commit feature, this must<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be initially off. An interface method may be provided to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;turn it back on.<br>&quot;&quot;&quot;<br><br>But MySQL didn't have transactions for the longest time, so this never
<br>really worked well until MySQL4 with InnoDB table support.<br><br>Now that MySQL is using transactions, it's possible that MySQLdb may have<br>autocommit off by default now.&nbsp;&nbsp;In fact, it looks like it, as there's a<br>
snippet of code in the driver now with the following:<br><br>######<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self._transactional = (self.server_capabilities &amp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
CLIENT.TRANSACTIONS)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if self._transactional:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# PEP-249 requires autocommit to be initially off<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;self.autocommit(0)<br>######<br><br>Ah, ok, so it does look like MySQL now doesn't autocommit by default.
<br>That's new: I'll have to remember that.<br><br>Try doing a conn.commit() at the end of your database programs.<br><br>Best of wishes to you!<br><br>_______________________________________________<br>Tutor maillist&nbsp;&nbsp;-&nbsp;&nbsp;
<a href="mailto:Tutor@python.org">Tutor@python.org</a><br><a href="http://mail.python.org/mailman/listinfo/tutor">http://mail.python.org/mailman/listinfo/tutor</a><br></blockquote></div><br><br><br>-- <br>'There is only one basic human right, and that is to do as you damn well please.
<br>And with it comes the only basic human duty, to take the consequences.'