Julia: PotgreSQL のデータを作成 (Create)


text_manipulate.jl はこちら
Julia: text ファイルの crud

postgre_create.jl
#! /usr/bin/julia
#
#   postgre_create.jl
#
#                       Dec/28/2021
# --------------------------------------------------------------------
using LibPQ
using DotEnv

include("text_manipulate.jl")
# --------------------------------------------------------------------
function data_prepare_proc()
    dict_aa = Dict()
#
    dict_aa = dict_append_proc(dict_aa,"t3461","広島",32561,"2013-4-30")
    dict_aa = dict_append_proc(dict_aa,"t3462","福山",81295,"2013-8-10")
    dict_aa = dict_append_proc(dict_aa,"t3463","東広島",28674,"2013-3-14")
    dict_aa = dict_append_proc(dict_aa,"t3464","呉",73612,"2013-2-9")
    dict_aa = dict_append_proc(dict_aa,"t3465","尾道",52391,"2013-8-4")
    dict_aa = dict_append_proc(dict_aa,"t3466","竹原",95187,"2013-1-21")
    dict_aa = dict_append_proc(dict_aa,"t3467","三次",31246,"2013-7-23")
    dict_aa = dict_append_proc(dict_aa,"t3468","大竹",85791,"2013-11-26")
    dict_aa = dict_append_proc(dict_aa,"t3469","府中",24139,"2013-10-15")
#
    return  dict_aa
end
# --------------------------------------------------------------------
function create_table_proc(conn)
    sql_str = "drop table cities"
    println(sql_str)
    aa = execute(conn,sql_str)
    println(aa)
#
    sql_str = "create table cities (id varchar(10) primary key, name text, population int, date_mod date)"
    println(sql_str)
    aa = execute(conn,sql_str)
    println(aa)
#
end
# --------------------------------------------------------------------
function insert_proc(conn,dict_aa)
    for key in sort(collect(keys(dict_aa)))
        print(key, '\t', dict_aa[key]["name"])
        print('\t', dict_aa[key]["population"])
        println('\t', dict_aa[key]["date_mod"])
        ft_aa = "insert into cities (id,name,population,date_mod) values ("
        ft_bb = "'" * key * "','" * dict_aa[key]["name"] * "',"
        ft_cc = "'" * string(dict_aa[key]["population"]) * "',"
        ft_dd = "'" * dict_aa[key]["date_mod"] * "')"
        sql_str = ft_aa * ft_bb * ft_cc * ft_dd
        println(sql_str)
        aa = execute(conn,sql_str)
        println(aa)
    end
#
end
# --------------------------------------------------------------------
println("*** 開始 ***")
DotEnv.config()
user=ENV["user"]
password=ENV["password"]
data_base=ENV["data_base"]

dict_aa = data_prepare_proc()

str_connect = "dbname= " * data_base * " host=127.0.0.1 user=scott password=tiger123 port=5432"
conn = LibPQ.Connection(str_connect)
create_table_proc(conn)
insert_proc(conn,dict_aa)

#
close(conn)
#
println("*** 終了 ***")
# --------------------------------------------------------------------

次のバージョンで確認しました。

$ julia --version
julia version 1.7.1