查看: 1199|回复: 5
|
MySQL 不能 Rollback
[复制链接]
|
|
小章鱼是用 ASP.Net 2.0 + MySQL ODBC
代码如下
- string conStr = "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=;UID=myadminid;PWD=myadminpsw;";
- using (OdbcConnection con = new OdbcConnection(conStr)) {
- OdbcTransaction transaction = null;
- OdbcCommand com = new OdbcCommand();
- com.Connection = con;
- try {
- con.Open();
- transaction = con.BeginTransaction();
- com.Connection = con;
- com.Transaction = transaction;
- com.CommandText = "CREATE DATABASE `mydb2`";
- com.ExecuteNonQuery();
- com.CommandText = "CREATE TABLE `mydb2`.`testTable` (`id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, PRIMARY KEY(`id`))" +
- "ENGINE = InnoDB;";
- com.ExecuteNonQuery();
- transaction.Rollback();
- } catch (Exception ex) {
- try {
- transaction.Rollback();
- } catch { }
- Response.Write("error : " + ex.Message);
- }
- }
复制代码
如此,应该无论如何都会 Rollback 对吧?
可是 Database 和 Table 还是建立成功,没有错误。
小章鱼少了些什么? |
|
|
|
|
|
|
|
发表于 26-7-2006 10:00 AM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 26-7-2006 01:19 PM
|
显示全部楼层
谢谢 MAX
看过你介绍的文档后,竟然:CREATE TABLE, CREATE DATABASE statements cause an implicit commit
汗……小章鱼还给它来个左青龙,右白虎
Rollback 功能竟不支持重要的 statement.
不知道 MSSQL 是不是也是酱? |
|
|
|
|
|
|
|
发表于 27-7-2006 12:40 PM
|
显示全部楼层
MSSQL 可以 rollback create table. |
|
|
|
|
|
|
|

楼主 |
发表于 4-8-2006 03:43 AM
|
显示全部楼层
谢谢 goatstudio 。
后来想想,实际上一般 Create Database 和 Create Table 也不需要 Rollback 的吧?呵呵
现在没有问题了,已经可以 Rollback Rows 了 |
|
|
|
|
|
|
|
发表于 4-8-2006 08:53 AM
|
显示全部楼层
应该不需要的^^因为CREATE TABLE和DB只是一次的工,除非用在RESTORE DB的时候而已^^ |
|
|
|
|
|
|
| |
本周最热论坛帖子
|