私は postgresql を使用しており、プログラムで関数を使用してレコードを挿入または更新したいと考えています。しかし、私が知っておく必要があるのは、探している条件を持つレコードが既にデータベースにある場合はそれを更新し、そうでない場合は新しいレコードを挿入するということです。詳細:
テーブル :
CREATE TABLE running_check
(
"UID" character varying(100) NOT NULL,
"CameraIP" character varying(100),
"ErrorStatus" integer,
"IsRunning" boolean,
"CheckTime" timestamp without time zone
);
レコードの例:
UID CameraIP ErrorStatus IsRunnning CheckTime
------------------------------------------------------------------
12E 10.0.0.26 0 true now()
C26 10.0.0.22 0 true now()
454 10.0.0.13 3 false now()
次のような関数が必要です。
InsertRunningCheckInfo(character varying, character varying, integer, boolean )
そして、関数を呼び出すとき、最初に、同じ UID を持つレコードが既に存在する場合はテーブル内のレコードを確認する必要があります。次に、その「IsRunning」値が true の場合は「CheckTime」を更新するだけで、そうでない場合はその ErrorStatus、IsRunning、およびCheckTime 値、同じ UID を持つレコードが存在しない場合、新しいレコードを挿入します。
実際、私が直面している問題は、関数で Select クエリを使用してそのフィールドをチェックしてから機能させる方法がわからないことです。自分。私が知らないPostgresqlでこのタスクに利用できる別の方法があるかもしれないので、あなたに尋ねたかった.
前もって感謝します。