mirror of
https://github.com/PaiGramTeam/sqlmodel.git
synced 2024-11-30 02:44:13 +00:00
69 lines
1.7 KiB
Markdown
69 lines
1.7 KiB
Markdown
|
1. Select the hero we will work with.
|
||
|
|
||
|
2. Execute the query with the select statement object.
|
||
|
|
||
|
This generates the output:
|
||
|
|
||
|
```
|
||
|
INFO Engine SELECT hero.id, hero.name, hero.secret_name, hero.age
|
||
|
FROM hero
|
||
|
WHERE hero.name = ?
|
||
|
INFO Engine [no key 0.00017s] ('Spider-Boy',)
|
||
|
```
|
||
|
|
||
|
3. Get one hero object, expecting exactly one.
|
||
|
|
||
|
!!! tip
|
||
|
This ensures there's no more than one, and that there's exactly one, not `None`.
|
||
|
|
||
|
This would never return `None`, instead it would raise an exception.
|
||
|
|
||
|
4. Print the hero object.
|
||
|
|
||
|
This generates the output:
|
||
|
|
||
|
```
|
||
|
Hero: name='Spider-Boy' secret_name='Pedro Parqueador' age=None id=2
|
||
|
```
|
||
|
|
||
|
5. Set the hero's age field to the new value `16`.
|
||
|
|
||
|
Now the `hero` object in memory has a different value for the age, but it is still not saved to the database.
|
||
|
|
||
|
6. Add the hero to the session.
|
||
|
|
||
|
This puts it in that temporary place in the session before committing.
|
||
|
|
||
|
But it's still not saved in the database yet.
|
||
|
|
||
|
7. Commit the session.
|
||
|
|
||
|
This saves the updated hero to the database.
|
||
|
|
||
|
And this generates the output:
|
||
|
|
||
|
```
|
||
|
INFO Engine UPDATE hero SET age=? WHERE hero.id = ?
|
||
|
INFO Engine [generated in 0.00017s] (16, 2)
|
||
|
INFO Engine COMMIT
|
||
|
```
|
||
|
|
||
|
8. Refresh the hero object to have the recent data, including the age we just committed.
|
||
|
|
||
|
This generates the output:
|
||
|
|
||
|
```
|
||
|
INFO Engine SELECT hero.id, hero.name, hero.secret_name, hero.age
|
||
|
FROM hero
|
||
|
WHERE hero.id = ?
|
||
|
INFO Engine [generated in 0.00018s] (2,)
|
||
|
```
|
||
|
|
||
|
9. Print the updated hero object.
|
||
|
|
||
|
This generates the output:
|
||
|
|
||
|
```
|
||
|
Updated hero: name='Spider-Boy' secret_name='Pedro Parqueador' age=16 id=2
|
||
|
```
|