【问题标题】:Alternative For Stored Procedures In cockroachDBcockroachDB中存储过程的替代方案
【发布时间】:2021-10-03 06:12:47
【问题描述】:

我试图从另一个 RDBMS 迁移到 cockroachDB,但我认为 Cockroach 中没有像存储过程这样的功能。那么在 cockroachDB 中创建存储过程的最佳选择是什么?

【问题讨论】:

  • 您能描述一下您尝试使用存储过程实现的用例吗?很多时候,存储过程会锁定数据库供应商。
  • 现在只是基本的示例存储过程,我想看看 cockroach 的限制和功能是什么......就是这样......所以如果我想将它用于交易目的,无论我能不能做到?

标签: database stored-procedures migration cockroachdb cockroachcloud


【解决方案1】:

CockroachDB 是分布式 SQL,本机适合无服务器模式。由于存储过程只是确保过程一致性的一种方式,因此您可能可以通过使用无服务器函数(无论哪种方式)来获得。这个想法是无服务器函数是存储过程的代理。

虽然 proc 可以调用其他 proc,但常见的建议是避免让无服务器函数相互调用。开发一个对所有数据库约束建模的云库(例如 JavaScript)是合理的。然后每个无服务器函数成为一个端点(proc),库提供重用/共享逻辑的方法。

【讨论】:

    【解决方案2】:

    CockroachDB does not support stored procedures 和最佳选择取决于您要解决的问题。几个例子:

    • 如果存储过程包含业务逻辑,我们建议将该逻辑移至应用程序。
    • 应将包含单个 DML 语句的简单存储过程移至应用程序的 DataAccess 逻辑中。
    • 应将包含显式事务或错误代码的更复杂的存储过程移至应用程序级事务。

    编辑:Stored Procedures as a Litmus Test,Joe Emison 的一篇文章,将存储过程与其他解决方案进行了比较。这可能有助于理解替代方案。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      相关资源
      最近更新 更多