Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpDbDl 220 of 288 menu
◀ ▶

Удаление строк в Rust

Запрос удаления убирает строки из таблицы, которые подходят под условие. Без условия очистят всю таблицу, поэтому WHERE почти всегда пишут явно.

Удалим одну запись по ключу:

use rusqlite::{Connection, params}; fn drop_id(id: i64) -> Result<(), rusqlite::Error> { let conn = Connection::open("app.db")?; let removed = conn.execute( "DELETE FROM user WHERE id = ?1", params![id], )?; println!("{}", removed); Ok(()) } fn main() { match drop_id(3) { Ok(()) => {} Err(e) => println!("{}", e), } }

Число на экране показывает, сколько строк исчезло. Если ключ не найден, число будет нулем.

Условие можно задать по текстовому столбцу:

use rusqlite::{Connection, params}; fn drop_name(label: &str) -> Result<(), rusqlite::Error> { let conn = Connection::open("app.db")?; conn.execute( "DELETE FROM user WHERE name = ?1", params![label], )?; Ok(()) } fn main() { match drop_name("bob") { Ok(()) => println!("cut"), Err(e) => println!("{}", e), } }

Дана таблица:

1 ann 2 bob 3 cara

Удалите строку с id равным 2 и выведите left 2, если после удаления осталось две строки.

Дана таблица:

5 dan 6 dan

Уберите все строки, где name равно dan, и выведите число удаленных записей.

Скажите, можно ли вернуть строку после удаления тем же запросом выборки без новой вставки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить