SeaORM简介
SeaORM 是一个关系型 ORM,用于帮助你像使用动态语言那样,在 Rust 中构建 Web 服务。实现所需的Trait以及创建并插入测试数据
在使用 SeaORM 之前,需要进行一些初始操作。本章我们将创建数据表、导入初始示例数据以及实现所需的 trait。最后,我们通过查询所有分类列表来验证这些操作是否正常运行。使用 SeaORM 查询数据
本章我们将讨论如何使用 SeaORM 进行查询:查询条件、分页、查询单条记录等。使用 SeaORM 插入数据
本章将讨论如何使用 SeaORM 添加记录。使用 SeaORM 修改数据
本章讨论使用 SeaORM 修改数据使用 SeaORM 删除数据
本章将讨论如何使用 SeaORM 实现删除。使用 SeaORM 操作一对多和多对一关系
正如其名,关系型数据库中的“关系”是很重要的部分。SeaORM 支持常见的数据关系,本章将讨论其中的一对多和多对一关系。SeaORM 的命令行工具和自动迁移
SeaORM 提供了一个命令行工具,可以快速生成实体。同时,还提供了自动迁移功能。SeaORM 操作多对多关系
本章将讨论多对多:一篇文章可以有多个标签,同样的,一个标签可以对应多篇文章。总结与作业
总结与作业
使用 SeaORM 修改数据
- 253480
- 2022-05-31 17:51:12
本章讨论使用 SeaORM 修改数据
代码
Unchanged()
update()
执行数据库的 UPDATE
操作。
自动决定是更新还是插入 - save()
上一章我们使用 insert()
来插入数据,本章我们使用update()
来更新数据。其实 SeaORM 提供了 save()
,它可以自动决定是插入还是更新:
- 当主键为
NotSet
时,执行INSERT
- 当主键为
Set
或UnChange
时,执行UPDATE
// INSERT
category::ActiveModel {
id: NotSet,
name: Set(name),
..Default::default()
}.save(conn).await.unwarp();
// UPDATE
category::ActiveModel {
id: Unchanged(id),
name: Set(name),
..Default::default()
}.save(conn).await.unwarp();
// UPDATE
category::ActiveModel {
id: Set(id),
name: Set(name),
..Default::default()
}.save(conn).await.unwarp();
⚠️
save()
仅适用于自增长的主键
⚠️ save()
仅适用于自增长的主键
Set
、NotSet
和Unchanged
都是 ActiveValue
的枚举值。