Проверьте, существует ли уже определенная запись в базе данных в Diesel/Rust.

В настоящее время я разрабатываю базу данных на Rust, используя Diesel-Framework.

Моя задача — проверить, существует ли запись в таблице, сравнив первичный ключ.

Я генерирую первичный ключ с помощью Uuid-Crate:

let extension = ".png".to_string();
let primary_key = Uuid::parse_str(&extension).unwrap();

Если первичный ключ еще не существует, я хочу вставить новую запись в базу данных. С другой стороны, если уже существует первичный ключ с тем же Uuid, я не хочу вставлять его в базу данных.

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


person Samuel Dressel    schedule 04.10.2019    source источник


Ответы (1)


В случае, если UUID является первичным ключом, ваш механизм bdd вернет uniq constraint violation error при вставке уже существующего UUID, вы можете получить такое же поведение для любой строки, добавив к ней ограничение uniq. Вы должны взглянуть на документ postgres

person Asya Corbeau    schedule 04.10.2019