Postgres Sql中如何獲得一個插入的序列號的值?

一種方法是在插入之前先用函數 nextval() 從序列對象裏檢索出下一個 SERIAL 值,然後再用此值精確地插入。使用例子裏的例表,可用僞碼這樣描述:

   new_id = execute("SELECT nextval('person_id_seq')");
   execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')");

這樣還能在其他查詢中使用存放在 new_id 裏的新值(例如,作爲參照 person 表的外鍵)。 注意自動創建的 SEQUENCE 對象的名稱將會是 <table>_<serialcolumn>_seq, 這裏 table 和 serialcolumn 分別是你的表的名稱和你的 SERIAL 字段的名稱。

類似的,在 SERIAL 對象缺省插入後你可以用函數 currval() 檢索剛賦值的 SERIAL 值,例如:

   execute("INSERT INTO person (name) VALUES ('Blaise Pascal')");
   new_id = execute("SELECT currval('person_id_seq')");
<SCRIPT src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type=text/javascript> </SCRIPT>

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章