I note by experiment (by observing the content of the binary log) that I get
the following actions when trying to use a temporary table during a
transaction:

-- on creating a temporary table, the create (only) is committed
-- on dropping a temporary table, the current transaction is committed

All tables are InnoDB, including the temporary table.  Using Linux:
3.23.49-max-log

What are the rules?  Can I use a temporary table to hold  temporary results
during a transaction, and, if so, will I still be able to use the binary log
for recovery purposes?

>From my experiment, it looks as if I could do so, provided I use a different
name each time and I don't drop the temporary tables explicitly, but let
them go away when connections are terminated.  There aren't many, and this
would be acceptable.  I'd like to know if it would be safe to do so.
(Different names are needed since, in principle, two concurrent transactions
could create temporary tables, and the operations on the temporary tables
could be interleaved in the binary log.)

Note.  I get the same actions with a table which is not declared
temporary--though, of course, it doesn't go away when the connection does.

I wasn't able to find anything on this in the manual.  I seem to recall that
some other databases--such as Oracle--automatically commit before any DDL
statement.

sql,query



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to