【发布时间】:2015-06-10 15:37:23
【问题描述】:
我正在通过 sqlite3 学习在 python 中使用 sqlite。
在关闭连接之前,应调用诸如插入、更新支持事务和 commit() 等 SQL 操作,否则数据库中不会发生任何变化。但是,“创建表”不支持事务,或者创建表是自动提交的。例如,
con.execute('create table xxx (xxxx)')
该表将立即创建。更重要的是,如果我们在创建表之前执行插入语句,而不使用 commit()。然后执行create table,insert会被提交,'create table'也会被提交。
我在文档 https://docs.python.org/2/library/sqlite3.html#sqlite3-types、https://www.python.org/dev/peps/pep-0249/#id3 或 https://sqlite.org/atomiccommit.html 中没有发现任何关于此类行为的提及。
我的问题是: 1.有没有其他操作是这样的? 2. 其他 DBMS 的行为是什么? 3. 有这方面的规范吗?
【问题讨论】: