主要观点:作者开发rust-query是为解决 Rust 中与数据库交互的现有选项问题,提供无需写 SQL 即可安全持久化数据、轻松编写复杂查询的方式。
关键信息:
rust-query与 Rust 类型系统深度集成,提供诸多关键特性,如显式表别名、空安全、直观聚合等。- 定义模式时使用枚举语法,可轻松迁移到不同模式,如添加用户邮箱地址的迁移示例。
- 插入数据需使用可变事务,插入带唯一约束的表时用
try_insert处理冲突。 - 查询时通过连接、过滤等操作处理行,
aggregate用于计算聚合。 - 支持模式演化和类型检查的迁移,可在迁移中执行各种查询操作。
重要细节: - SQL 是与数据库交互的标准,但作者认为应让计算机写 SQL。
rust-query的库 API 由#[schema]宏解析枚举语法生成。- 插入和更新带唯一约束的行会产生专门的错误类型。
- 行引用与事务生命周期绑定,实际行号不暴露在库 API 中。
- 目前
rust-query仅以 SQLite 为后端,因其嵌入式特性适合开发阶段。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。