本质上,我想在MySQL的一个过程的生命周期中将一些行存储在一个临时变量中。
我的程序将在程序开始时获取一列外键。一旦我完成了它们的工作,我想更新表格以表明它们已被处理。当我的程序处理它的数据集时,可能会在此表中插入,因此我不想错误地将这些新行标记为已处理。我也不想锁定这个表并阻止正在进行插入的线程。
临时表是最佳解决方案吗?
答案 0 :(得分:1)
如果它在SQL Server中,请使用表变量进行调查......
Declare @MyFKs Table
(FkId Integer Primary Key Not Null,
isProcessed bit)
虽然它们不是那么灵活(不能为它们添加多个索引),但表变量不像临时表那样参与事务记录,因此,对于窄表,您只需存储密钥,最多一些数据列,它们可以比临时表更好地表现。
答案 1 :(得分:1)
临时表将是解决此问题的最简单且可能是最好的方法。