2021/01/21

シェル(bash) データベースへのレコードを自動挿入

指定の時間に成ったら、レコードを挿入するためのシェル(bash)

#!/bin/bash
#postgresqlへアクセスし、データを書き込む
psql "postgresql://<ユーザ>:<パスワード>@192.168.0.xxx/<データベース名>" << _EOF
insert into table1 (create_date)
select to_number(to_char(now(), 'YYYYMMDD'),'99999999')
where NOT EXISTS (select 1 from table1 where create_date=to_number(to_char(now(), 'YYYYMMDD'),'99999999'))
_EOF

exit $?


データベースへの格納条件
create_dateは20210121のnumeric型

create_dateに今日の日付が入っているものが存在しなければ、
create_dateに今日の日付「YYYYMMDD」のnumeric型のデータでそのほかはデフォルト値
のレコードを挿入する。
存在すれば、レコードを挿入しない。

これをcronやRUNDECK等を使って指定の時間にシェルを走らせればいい。

0 件のコメント:

コメントを投稿