我应该如何在存储过程中临时存储行?

时间:2008-11-18 16:24:32

标签: mysql database stored-procedures temp-tables

本质上,我想在MySQL的一个过程的生命周期中将一些行存储在一个临时变量中。

我的程序将在程序开始时获取一列外键。一旦我完成了它们的工作,我想更新表格以表明它们已被处理。当我的程序处理它的数据集时,可能会在此表中插入,因此我不想错误地将这些新行标记为已处理。我也不想锁定这个表并阻止正在进行插入的线程。

临时表是最佳解决方案吗?

2 个答案:

答案 0 :(得分:1)

如果它在SQL Server中,请使用表变量进行调查......

Declare @MyFKs  Table 
   (FkId Integer Primary Key Not Null,
    isProcessed bit) 

虽然它们不是那么灵活(不能为它们添加多个索引),但表变量不像临时表那样参与事务记录,因此,对于窄表,您只需存储密钥,最多一些数据列,它们可以比临时表更好地表现。

答案 1 :(得分:1)

临时表将是解决此问题的最简单且可能是最好的方法。