cockroachDB 中存储过程的替代方案

Alternative For Stored Procedures In cockroachDB

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

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

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

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

CockroachDB 是分布式的 SQL 并且天生适合无服务器模式。由于存储过程只是确保过程一致性的一种方式,您可能可以通过使用无服务器函数(无论哪种风格)来实现。这个想法是无服务器功能是存储过程的代理。

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