我使用MySQL的AUTO_INCREMENT字段和InnoDB来支持事务。我注意到当我回滚事务时,AUTO_INCREMENT字段没有回滚?但是当我不调用RollBack时,id不会改变。
try
{
//My Code
}
catch (MySqlException ex)
{
//deadlock exception in mysql
if (ex.Number == 1213)
{
//I don't use RollBack and the id dosen't change
MessageBox.Show("Try again", "Warning");
}
else
{
msqlTr.Rollback();
txtError.Text = "Erreur : " + ex.Message;
Log.LogError.setError(ex);
MessageBox.Show("Erreur : " + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
msqlTr.Rollback();
txtError.Text = "Erreur : " + ex.Message;
Log.LogError.setError(ex);
MessageBox.Show("Erreur : " + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
如果这段代码是正确的,我的意思是当我不调用回滚时?
发布于 2014-09-21 18:48:35
身份增量发生在事务之外。这就像预期的一样。
https://stackoverflow.com/questions/25962614
复制