Rust: MariaDB のデータを更新 (Update)


フォルダー構造

$ tree -L 2
.
├── Cargo.lock
├── Cargo.toml
├── src
│   ├── main.rs
│   └── utils.rs
└── target
    └── debug
Cargo.toml
[package]
name = "update"
version = "0.1.0"
edition = "2018"

#

[dependencies]
diesel = { version = "*", features = ["mysql"] }
chrono = "0.4"
src/main.rs
// --------------------------------------------------------------------
/*
    update/src/main.rs

                    Jul/20/2020
*/
// --------------------------------------------------------------------
use std::env;
use crate::utils::establish_connection;
use diesel::mysql::MysqlConnection;
use diesel::prelude::*;
use chrono::{Local, Date};

mod utils;

// --------------------------------------------------------------------
fn simple_sql(key_in:&str,population_in:&str) {
    let date_mod: Date<Local> = Local::today();
    println!("{}", date_mod);

    let connection: MysqlConnection = establish_connection();

    let sql_str = "update cities set population = ".to_owned()
         + population_in + &", date_mod = '".to_owned()
         + &date_mod.to_string()
         + &"' where id = '".to_owned() + key_in + "'";

    println! ("{}",sql_str);

    connection.execute(&sql_str).unwrap();
}

// --------------------------------------------------------------------
fn main (){
    eprintln! ("*** start ***");

    let args: Vec<_> = env::args().collect();
    let key_in = &args[1];
    let population_in = &args[2];
    println! ("{}\t{}",key_in,population_in);
    simple_sql(key_in,population_in);

    eprintln! ("*** end ***");
}

// --------------------------------------------------------------------

src/utils.rs は、こちらのものと同じ
Rust: MariaDB のデータを読む (Read)

実行

cargo run t3322 2398100