【问题标题】:How should I temporarily store rows in a stored procedure?我应该如何在存储过程中临时存储行?
【发布时间】:2010-09-22 21:23:23
【问题描述】:

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

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

临时表是最好的解决方案吗?

【问题讨论】:

    标签: mysql database stored-procedures temp-tables


    【解决方案1】:

    临时表将是解决这个问题的最简单的方法,也可能是最好的方法。

    【讨论】:

    • 是的,这就是最终的结果。
    【解决方案2】:

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

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

    虽然它们不那么灵活(不能向它们添加多个索引),但表变量不会像临时表那样参与事务日志记录,因此,对于窄表,您只存储一个键并且最多一些数据列,它们可以比临时表更好的性能。

    【讨论】:

    • 啊...对不起,那么答案是肯定的,使用临时表.. 但是如果它将管理超过几千行,请确保在临时表上放置适当的索引(索引)你创造它...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    相关资源
    最近更新 更多