実現したいこと
datetime型のカラムに対して、既存データに対して重複しなくなるまで秒を加算してからインサートしたい。
既存データには変更は加えない(DELETEやUPDATEはしない)。
例
'2024-08-29 09:00:00'をインサートしようとしたときに既に下記テーブルにデータがある。
|dt(timestamp without timezone)| |------------------------------------| |2024-08-29 09:00:00| |2024-08-29 09:00:01| |2024-08-29 09:00:02|
既存データと重複しなくなるまで秒を加算したいので、インサート後は下記のようにしたい。
|dt(timestamp without timezone)| |------------------------------------| |2024-08-29 09:00:00| |2024-08-29 09:00:01| |2024-08-29 09:00:02| |2024-08-29 09:00:03| <--- インサート
前提
テーブル構造
実際は他にもカラムがあるが、本質問では最低限の情報のみ提示したいためdatetime型(timestamp without timezone)列のみの構造とする。ただし、実際のテーブルでは他の列に主キーなどを設定しているため、主キー等は設定しない。(本当は主キーなどを設定して、重複しない構造にすべきなのでしょうが・・・。)
その他
Pythonのpsycopg2でSQLを使うつもり。
特に気にする必要はないと思いますが、一応。
バージョン
sql
1SELECT * FROM version(); 2 3PostgreSQL 14.4, compiled by Visual C++ build 1914, 64-bit
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/08/29 04:35
2024/08/30 05:31