【发布时间】:2019-09-03 05:24:47
【问题描述】:
这是从我的应用程序运行的简单 mysql 查询:
try
{
using (var connection = new MySqlConnection(connectionString))
{
var storedProcedure = "ReserveConstructB";
using (var command = new MySqlCommand(storedProcedure, connection))
{
command.CommandType = CommandType.StoredProcedure;
connection.Open();
command.ExecuteNonQuery();
}
}
}
这是一个简单的存储过程:
BEGIN
start transaction;
select *from Kimmel_constructs for update;
END
如您所见,我没有在程序结束时提交,但无论如何,当我下次运行此程序时,即使“Kimmel_constructs”没有释放,我也会得到 lock_wait_timeout 异常。如果我从不同的连接调用 MySql Workbench 中的相同过程,我会得到异常,这将是所需的行为。这种行为的原因可能是什么?
【问题讨论】:
-
您的
connection在处理结束事务时关闭,从而释放锁。 -
@sticky bit,是的,这似乎很合理,但我认为情况并非如此,因为即使程序完成并且连接关闭,我仍然无法从工作台调用此程序-I只能从我的应用程序中调用它。
标签: c# mysql mysql-workbench