我的目標是在表中插入新行時自動插入主鍵字段。currval尚未定義此會話,如何獲取多會話序列?
如何獲取PostgreSQL中從會話到會話的序列?
[email protected]:/home/yves$ psql -d test
Mot de passe :
psql (8.4.13)
Saisissez « help » pour l''aide.
test=> create sequence test001 start 10;
CREATE SEQUENCE
test=> select currval('test001');
ERREUR: la valeur courante (currval) de la séquence « test00 » n''est pas encore définie dans cette session
--- current value not yet defined this session (???)
test=> select setval('test001', 10);
setval
--------
10
(1 ligne)
test=> select currval('test00');
currval
---------
10
(1 ligne)
test=> \q
[email protected]:/home/yves$ psql -d test
Mot de passe :
psql (8.4.13)
Saisissez « help » pour l''aide.
test=> select currval('test001');
ERREUR: la valeur courante (currval) de la séquence « test00 » n''est pas encore définie dans cette session
一個序列的整個目的是讓它的本地會話。你不能「把」currval「交」給另一個會話。你爲什麼認爲你需要這個?爲什麼不在一次交易中做所有事情? –
@a_horse_with_no_name,因爲我同時打開了兩個會話:管理員和生產者。所以我必須有兩個單獨的會議。 –
爲什麼不創建一個單一的序列,然後在兩個會話之間分享?他們得到了獨特的ID,完成了工作。 –