1
は、私はこの1つに類似のPostgreSQLを持つテーブルがある:INSERT ... ON CONFLICT DO UPDATEとTIMESTAMPを自動的に更新する方法は?
mytableは:私は挿入を行う際に
id
col2
col3
import_ts TIMESTAMP(0) WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
をだから、私はこの列の任意の値を指定する必要はありませんし、現在のタイムスタンプが自動的に挿入された。しかしながら
、以下のようなクエリを使用する場合:
INSERT INTO mytable (id, col2, col3) VALUES (%s, %s, %s)
ON CONFLICT (id) DO UPDATE
SET col2 = %s, col3 = %s;
結果は予想通りINSERT
の場合、import_tsが自動的に挿入されることです。 UPDATE
の場合、列import_ts
は更新されません。
私はpython
とpsycopg2
を使用していますようimport_tsは、更新したために、私はSET
import_ts = %s
に追加し、現在の時刻を渡すことができます。しかし、あるケースではタイムスタンプが自動的に追加され、もう1つのタイムスタンプは自動的に追加されます。私は常にPostgreSQLによって自動的に行われることを望んでいます。それは可能ですか?
私はデフォルトが使用されることを望んでいたSQLに何とか言っで考えていたが、それは間違いなく十分に簡単です。私の目を開けてくれてありがとう;) – J0ANMM