我有一个流式摄取到我的临时表中。每隔5分钟,我执行一个存储过程,将此临时表中的所有数据插入/更新到我的final
表中。
存储过程的过程:
BEGIN
- UPDATE RECORDS IN FINAL TABLE FROM STAGING TABLE
- INSERT RECORDS IN FINAL TABLE FROM STAGING TABLE
- TRUNCATE STAGING TABLE
HERE I WANT TO RELEASE THE LOCK
END
任何想法我怎么能明确地说我想锁定插入的临时表,直到我截断它?
答案 0 :(得分:0)
您可以在事务块中执行这些脚本,如下所示;
writeFileSync
另一个交易将等待完成您的交易冻结。你应该创建try / catch块来处理错误。如果脚本鼓励出错,则应该在catch块中BEGIN
BEGIN TRANSACTION
- UPDATE RECORDS IN FINAL TABLE FROM STAGING TABLE
- INSERT RECORDS IN FINAL TABLE FROM STAGING TABLE
- TRUNCATE STAGING TABLE
COMMIT TRANSACTION
HERE I WANT TO RELEASE THE LOCK
END
。因为如果正在启动事务,它必须以 COMMIT 或 ROLLBACK 结束。您不希望该交易被挂起。