Aテーブルにレコードをinsert BテーブルにもAテーブルに紐づくレコードをinsertしたい Aテーブルにinsertした際にシーケンスで登録されたIDを取得して使用したい! -- データを INSERT INSERT INTO hoge (hoge_id, hoge_text) VALUES (nextval('hoge_id_seq'), 'てすと'); -- 直前のシーケンス値を取得 SELECT currval('hoge_id_seq');
Aテーブルにレコードをinsert BテーブルにもAテーブルに紐づくレコードをinsertしたい Aテーブルにinsertした際にシーケンスで登録されたIDを取得して使用したい! -- データを INSERT INSERT INTO hoge (hoge_id, hoge_text) VALUES (nextval('hoge_id_seq'), 'てすと'); -- 直前のシーケンス値を取得 SELECT currval('hoge_id_seq');
Postgresでの時間加算 select current_timestamp + interval '1 hours'; で加算できますが、加算する時間をカラムの値にしたい場合はどのように書くのでしょうか? Postgresでの時間加算 select current_timestamp + interval '1 hours'; で加算できますが、加算する時間をカラムの値にしたい場合はどのように書くのでしょうか? 実際にはwhere句に含めたいのです。 select * from test where (a + b) > now() カラムaのタイムスタンプにカラムbの数値分の時間を加算したいのです。 宜しくお願い致します。
よくあるパターンですが、あるテーブルを INSERT した直後に、関連するテーブルにもデータを INSERT する必要があって、最初に INSERT したテーブルのキー項目の値が取りたいんだけど、そのキー項目はシーケンスで設定している。みたいな場合の話です。 currval 関数を使って次のような感じにできます。 -- データを INSERT INSERT INTO hoge (hoge_no, hoge_text) VALUES (nextval('hoge_no_seq'), 'ほげげ'); -- 直前のシーケンス値を取得 SELECT currval('hoge_no_seq'); currval 関数は同一セッション中で設定された直前のシーケンス値を返すことを保証しているので、他のプログラムからも nextval がガンガン使われているような環境でも、しっかり直前の値を返してくれる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く