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


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

sqlite3_create.jl
#! /usr/bin/julia
#
#   sqlite3_create.jl
#
#                   Dec/28/2021
# --------------------------------------------------------------------
using SQLite

include("text_manipulate.jl")
# --------------------------------------------------------------------
function data_prepare_proc()
    dict_aa = Dict()
#
    dict_aa = dict_append_proc(dict_aa,"t0711","郡山",52761,"2013-2-22")
    dict_aa = dict_append_proc(dict_aa,"t0712","会津若松",17295,"2013-3-15")
    dict_aa = dict_append_proc(dict_aa,"t0713","白河",31674,"2013-8-14")
    dict_aa = dict_append_proc(dict_aa,"t0714","福島",43612,"2013-6-9")
    dict_aa = dict_append_proc(dict_aa,"t0715","喜多方",72391,"2013-9-4")
    dict_aa = dict_append_proc(dict_aa,"t0716","二本松",25187,"2013-2-21")
    dict_aa = dict_append_proc(dict_aa,"t0717","いわき",81246,"2013-1-23")
    dict_aa = dict_append_proc(dict_aa,"t0718","相馬",45791,"2013-10-26")
    dict_aa = dict_append_proc(dict_aa,"t0719","須賀川",74139,"2013-12-15")
#

    return  dict_aa
end
# --------------------------------------------------------------------
function create_table_proc(conn)
    sql_str = "drop table cities"
    println(sql_str)
    aa = DBInterface.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 = DBInterface.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 = DBInterface.execute(conn,sql_str)
        println(aa)
    end
#
end
# --------------------------------------------------------------------
println("*** 開始 ***")
file_db = ARGS[1]
dict_aa = data_prepare_proc()
conn = SQLite.DB(file_db)
create_table_proc(conn)
insert_proc(conn,dict_aa)
#
DBInterface.close!(conn)
#
println("*** 終了 ***")
# --------------------------------------------------------------------

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

$ julia --version
julia version 1.7.1