佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1199|回复: 5

MySQL 不能 Rollback

[复制链接]
发表于 26-7-2006 08:08 AM | 显示全部楼层 |阅读模式
小章鱼是用 ASP.Net 2.0 + MySQL ODBC
代码如下

  1. string conStr = "Driver={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=;UID=myadminid;PWD=myadminpsw;";
  2. using (OdbcConnection con = new OdbcConnection(conStr)) {
  3.     OdbcTransaction transaction = null;
  4.     OdbcCommand com = new OdbcCommand();
  5.     com.Connection = con;
  6.     try {
  7.         con.Open();
  8.         transaction = con.BeginTransaction();

  9.         com.Connection = con;   
  10.         com.Transaction = transaction;

  11.         com.CommandText = "CREATE DATABASE `mydb2`";
  12.         com.ExecuteNonQuery();

  13.         com.CommandText = "CREATE TABLE `mydb2`.`testTable` (`id` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT, PRIMARY KEY(`id`))" +
  14.                           "ENGINE = InnoDB;";
  15.         com.ExecuteNonQuery();

  16.         transaction.Rollback();
  17.     } catch (Exception ex) {
  18.         try {
  19.             transaction.Rollback();
  20.         } catch { }
  21.         Response.Write("error : " + ex.Message);
  22.     }
  23. }
复制代码

如此,应该无论如何都会 Rollback 对吧?
可是 Database 和 Table 还是建立成功,没有错误。
小章鱼少了些什么?
回复

使用道具 举报


ADVERTISEMENT

发表于 26-7-2006 10:00 AM | 显示全部楼层
你可以用简单的INSERT或UPDATE来TESTING看

START TRANSACTION;
INSERT INTO XXX(XXX)VALUES(XXX)用有PK的KEY来测试看
COMMIT;

还有你的DB TYPE是什么的?InnoDB, BDB, or NDB Cluster?

我用php来测试的。。asp和jsp也成功
这里有一些资料让你参考
http://dev.mysql.com/doc/refman/5.0/en/commit.html


http://sunsite.mff.cuni.cz/MIRRO ... /doc/en/COMMIT.html
回复

使用道具 举报

 楼主| 发表于 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的时候而已^^
回复

使用道具 举报

Follow Us
您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 12-8-2025 10:04 PM , Processed in 0.126741 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表