#1498·kysely

在 `Transaction` 中添加对"嵌套事务"的支持。

作者: igalklebanov创建于 2025年6月30日更新于 2026年7月17日
标签enhancementmysqlsqlitepostgresapimssql

嘿, 目前, 经典的回调 `db.transaction().execute(async (trx) => {})` API 不支持进一步的 `trx.transaction().execute(async (sp) => {})` 调用, 这将管理保存点的创建和提交/回滚(甚至释放)操作。 这种情况在其他数据库库中也存在。 我们是否应该引入此功能? 这确实是有必要的 - https://GitHub.com/kysely-org/kysely/issues/257#issuecomment-2198495345 获得了 6 个反应。 它在 #1497 中再次出现。 我们已经支持通过 `ControlledTransaction` 来"手动"执行此操作。 我们是否应该将此命名为 `trx.savepoint` 而不是 `trx.transaction`? 标准名称是一个谎言(保存点不是事务), 我们希望在这里做出明确的说明。 同时, 这可能会对处理 `Kysely` 和 `Transaction` 实例的上下文略为麻烦。

内容来源: kysely-org/kysely