我正在使用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)'。有很多方法,这是其中之一。希望这可以帮助。 –