@TicSo

Как удалить таблицу из базы postgresql, подставляя имя из переменной?

Так таблицу public.test_01 из базы postgresql удалить получается:
use tokio_postgres::{NoTls};
//
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// ...
let _ = &client.query("DROP TABLE IF EXISTS public.test_01", &[]).await?;
// ...
Ok(())
}


а так, - нет:
use tokio_postgres::{NoTls};
//
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// ...
let name_schema_tb: &str = "public.test_01";
let _ = &client.query("DROP TABLE IF EXISTS $1::TEXT", &[&name_schema_tb]).await?;
// ...
Ok(())
}

Error

Error: Error { kind: Db, cause: Some(DbError { severity: "ОШИБКА", parsed_severity: Some(Error), code: SqlState(E42601), message:
"ошибка синтаксиса (примерное положение: \"$1\")", detail: None, hint: None, position: Some(Original(22)), where_: None, schema: N
one, table: None, column: None, datatype: None, constraint: None, file: Some("scan.l"), line: Some(1245), routine: Some("scanner_y
yerror") }) }
error: process didn't exit successfully: `...` (exit code: 1)
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
vabka
@vabka Куратор тега Rust
Имя таблицы как параметр нельзя передать.
Используй format! или concat!
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы