簡體   English   中英

MySQL中的事務 - 無法回滾

[英]Transactions in MySQL - Unable to Roll Back

我正在使用MySQL 5.0.27,並試圖讓交易工作。 我按照本教程:

http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqltransaction.html

仍然無法讓這些工作。 我試圖更新的表是InnoDB,並試圖執行'set autocommit = 0'但它似乎沒有做任何事情....我寫的代碼如下:

public int transactionUpdate()
{
    MySqlConnection connection = new MySqlConnection(connStr);
    connection.Open();
    MySqlCommand command = connection.CreateCommand();
    MySqlTransaction trans;
    trans = connection.BeginTransaction();
    command.Connection = connection;
    command.Transaction = trans;
    try
    {
        command.CommandText = "SET autocommit = 0";
        command.executeNonQuery();
        command.CommandText = "UPDATE TBL.rec_lang rl SET rl.lang_code = 'en-us' WHERE rl.recording=123456";
        command.executeNonQuery();
        command.CommandText = "UPDATE TBL.rec_lang rl SET rl.lang_code = en-us WHERE rl.recording=123456";      
        command.executeNonQuery();
        trans.Commit();
    }
    catch(Exception ex)
    {
        try
        {
            trans.Rollback();
        }
        catch(MySqlException mse)
        {
            log.error(mse);
        }
    }
}

第二個命令失敗,因為它缺少'around'en-us'。 這應該回滾第一個查詢以及之前的值,但事實並非如此。 你能告訴我我做錯了嗎???

MySQLConnector v.6.3.6.0

MySQL v.5.0.27

C#VS2010

我打開了第二個數據庫,其中有錯誤的數據顯示> <...此方法有效。 事實證明我甚至不需要:

command.CommandText = "SET autocommit = 0";  
command.executeNonQuery();

所以這段代碼適用於交易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM