2013年9月26日木曜日

PHP 備忘録 直前にINSERTしたIDをしりたい

直前に追加したシーケンスをしりたいときに便利です。

PostgreSQLでデータをINSERTしたとき関連テーブルにもINSERTしたい。
そのとき最初のテーブルのSERIALを知りたいが
その値は自動で振られているのでわからないときに使います。


毎回調べるのでメモ

①データをINSERT
table1
id :SERIAL
name : text

INSERT INTO table1 (name) VALUES ("test")
(idのデータ型にはSERIALを設定しているので自動で挿入されます。)


②シーケンスの値を取得
$sql = "SELECT currval(table1_id_seq) as val";
$rtns = pg_query($connect,$sql);
$val = pg_fetch_result($rtns,"val");

これで調べることができました!

シーケンス操作関数
http://www.postgresql.jp/document/8.4/html/functions-sequence.html

0 件のコメント:

コメントを投稿