4

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

4

2 回答 2

4

CockroachDB不支持存储过程,最好的选择取决于您要解决的问题。几个例子:

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

编辑:作为试金石测试的存储过程,Joe Emison 的一篇文章,将存储过程与其他解决方案进行了比较。它可能有助于理解替代方案。

于 2021-07-29T16:20:40.970 回答
0

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

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

于 2021-11-25T16:08:05.290 回答