我正在使用postgres數據庫和Java。我正在使用Jooq來查詢我的數據庫。 我需要在我的表中創建一個插入,並獲取該插入生成的primary_key/sequence。我知道簡單的Postgres的我能做到這一點是這樣的:在jooq中使用postgres currval()
這是我的表是什麼樣子:
CREATE TABLE "myTable" (
"id" SERIAL NOT NULL,
"some_text" TEXT NOT NULL,
PRIMARY KEY ("id")
);
這是插入查詢:
INSERT INTO public.myTable(some_text)
VALUES ('myValue');
,比以獲得最新的序列,
SELECT currval('myTableName_myColumnName_seq')
FROM myTable;
1)如何在JOOQ中使用currval? 現在我試圖這樣的事情:
config.dsl().insertInto(Tables.myTable)
.set(Tables.myTable.myText, inputText)
.execute();
config.dsl().select.currval('myTableName_myColumnName_seq')
.from myTable;
但場外的最後一條語句給出錯誤。
所以我用上面的查詢icuken並將結果存儲在Result對象中。雖然我只給出了「返回」函數中的一個列名,但是我得到了其他列值標記爲空的整個表。我現在想從這個結果表中提取這個id。我怎樣才能做到這一點? id是JOOQ生成的類中的Integer類型。它是數據庫中的一個串行主鍵。 – user1858796
@ user1858796:只需使用'result.getValue(index,column)'。有很多方法,這是其中之一。希望這可以幫助。 –