Guides
Open a database
use pglite::PGlite;
# async fn run() -> Result<(), pglite::Error> {
let db = PGlite::open("./mydata").await?;
# Ok(())
# }
Use open_temp() for tests:
let db = pglite::PGlite::open_temp().await?;
Execute SQL
db.exec("CREATE TABLE users (id serial PRIMARY KEY, name text NOT NULL)").await?;
db.exec("INSERT INTO users (name) VALUES ('alice'), ('bob')").await?;
Query with parameters
let rows = db
.query("SELECT id, name FROM users WHERE id > $1 ORDER BY id", &[&0i32])
.await?;
for row in rows {
let id: i32 = row.get(0)?;
let name: &str = row.get(1)?;
println!("{id}: {name}");
}
Use a transaction
let tx = db.transaction().await?;
tx.exec("INSERT INTO users (name) VALUES ('carol')").await?;
tx.commit().await?;
If a transaction is dropped without commit(), it
rolls back.
Close
db.close().await?;
