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

Вставка строки в Rust

Новую строку кладут запросом вставки: в тексте перечисляют столбцы, а значения передают отдельным списком. Так число и текст попадают в таблицу без ручной склейки фразы запроса.

Подготовим таблицу и добавим одну запись:

use rusqlite::{Connection, params}; fn add_user() -> Result<(), rusqlite::Error> { let conn = Connection::open("app.db")?; conn.execute( "CREATE TABLE IF NOT EXISTS user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL )", [], )?; conn.execute( "INSERT INTO user (id, name) VALUES (?1, ?2)", params![1, "ann"], )?; Ok(()) } fn main() { match add_user() { Ok(()) => println!("inserted"), Err(e) => println!("{}", e), } }

На экране inserted. В таблице теперь одна строка с ключом 1 и именем ann.

Несколько строк добавляют повторением того же запроса с другими значениями:

use rusqlite::{Connection, params}; fn seed() -> Result<(), rusqlite::Error> { let conn = Connection::open("app.db")?; conn.execute( "INSERT INTO user (id, name) VALUES (?1, ?2)", params![2, "bob"], )?; conn.execute( "INSERT INTO user (id, name) VALUES (?1, ?2)", params![3, "cara"], )?; Ok(()) } fn main() { match seed() { Ok(()) => println!("two"), Err(e) => println!("{}", e), } }

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

CREATE TABLE user ( id INTEGER PRIMARY KEY, name TEXT NOT NULL );

Добавьте строку с id равным 10 и именем dan. При успехе выведите dan.

Даны две строки для таблицы user:

4 eve 5 fin

Запишите обе строки двумя запросами вставки и выведите pair при успехе обоих.

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

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