我需要在选择行的同时锁定行。 所以我需要某种交易来:
1) SELECT * FROM 更改,其中锁定=0
2) 更新更改 SET 锁定=1
3) 返回第一个查询结果
可能吗?
最佳答案
您可以将所有查询混合在一起,以便获得您想要的最终结果,您需要签署更改日期才能对上次更改进行排序和过滤:
事务 SQL:
string sql = "update changes set locked = 1, changed_date = getdate() where locked = 0;select top 1 * from changes order by changed_date desc;";
DataTable tbl = dal.fillAdapter();
或者调用存储过程来保存相同的查询,您可以执行标量来检查是否有任何行因为更新而受到影响,并且只有当发生更改时您才会查询最后的更改,换句话说,无穷无尽的组合来解决这个问题。
关于mysql - 选择、更新并返回所选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939409/