【发布时间】:2014-10-08 01:34:21
【问题描述】:
我想在我的控制器中获取 postgresql 中序列的下一个值。
我写了一个自定义查询,但我需要将它设置为 Id(它是整数类型)。
我该怎么做,或者我也应该编写自定义插入查询?
int count = session.CreateSQLQuery("SELECT nextval('transport_id_seq')");
【问题讨论】:
-
或
select max(transport_id) + 1 as nxtVal from your table -
@dude:
select max(..)在多用户环境中不起作用。使用max()生成 ID 要么不起作用,要么不能扩展到多个事务。使用序列是生成唯一 ID 的唯一方法 -
@a_horse_with_no_name 是的,我同意
-
是的。这就是为什么我试图选择 nextval 并在一个函数中进行交易。因为我需要多用户环境。
-
@JustinaSeliokaite 您必须执行查询。您不能只将其分配给变量。
标签: postgresql nhibernate