2008-05-25

【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() 會導致和其他用戶的衝突情況嗎?

沒有留言:

張貼留言