【问题标题】:Get nextvalue of sequence in postgresql在postgresql中获取序列的下一个值
【发布时间】: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


【解决方案1】:

正如@Craig Ringer 所说,只需执行查询:

var count = session.CreateSQLQuery("SELECT nextval('transport_id_seq')")
    .UniqueResult<long>();

【讨论】:

  • 我怎样才能得到整数值,不长?
猜你喜欢
  • 1970-01-01
  • 2012-11-03
  • 2013-08-16
  • 2018-05-09
  • 2016-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
相关资源
最近更新 更多