Manual testing with sqlite appears to show that CREATE TABLE is
transactional and can be rolled back.  Consider::

$ sqlite3 test2.db
Loading resources from /Users/chris/.sqliterc
SQLite version 3.4.0
Enter ".help" for instructions
sqlite> BEGIN;
sqlite> CREATE TABLE test1 (foo INTEGER);
sqlite> CREATE TABLE test2 (foo INTEGER);
sqlite> COMMIT;
sqlite> .tables
test1  test2
sqlite> ^D
$ rm test2.db
$ sqlite3 test2.db
Loading resources from /Users/chris/.sqliterc
SQLite version 3.4.0
Enter ".help" for instructions
sqlite> BEGIN;
sqlite> CREATE TABLE test1 (foo INTEGER);
sqlite> CREATE TABLE test2 (foo INTEGER);
sqlite> ROLLBACK;
sqlite> .tables
sqlite>


Perhaps the behaviour I see through SA is a side effect of pysqlite?

Cheers,
Chris Miles

On Feb 6, 2:36 pm, Michael Bayer <mike...@zzzcomputing.com> wrote:
> sqlite doesn't include CREATE TABLE statements within the scope of a  
> transaction.  I think that's a relatively rare behavior only seen in  
> Postgres, in fact - I dont think Oracle or MySQL have that behavior,  
> for example.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to