【PHP】Postgres 取得新 INSERT 的 serial 欄位值

建立一 table 作為範例:

CREATE TABLE test
(
prikey serial NOT NULL,
name character varying(10),
CONSTRAINT test_pkey PRIMARY KEY (prikey)
)
WITHOUT OIDS;

Postgres 會產生一個系統序列數 -- test_prikey_seq, 可藉 pgAdmin 觀察.

$rs = pg_query($conn,"INSERT INTO test (name) VALUES ('oldgrayduck'); ");
$val = pg_query($conn, "SELECT CURRVAL('test_prikey_seq') "); // 注意系統序列數要加上單引號
$a = pg_fetch_array($val);
echo "Insert sequence value: ".$a[0];

不需要擔心下面這個問題 ----

同時使用 currval() 會導致和其他用戶的衝突情況嗎?