gpt4 book ai didi

sql - 如何设置插入到具有下一个序列号的 grails 创建的文件?

转载 作者:行者123 更新时间:2023-11-29 13:07:30 24 4
gpt4 key购买 nike

我正在使用 JMS 队列读取数据并将数据插入到由 grails 创建的 postgres 表中。问题是获取下一个序列值。我以为我已经通过以下语句找到了解决方案(通过将“DEFAULT”放在 ID 应该去的地方),但它不再有效。我一定改变了什么,因为我需要重新创建表格。解决此问题的最佳方法是什么?

ps = c.prepareStatement("插入 xml_test (id, version, xml_text)值(默认值,0,?)”);

更新:

为了响应建议的解决方案,我执行了以下操作:

将其添加到域中:

class XmlTest {
String xmlText
static constraints = {
id generator:'sequence', params:[name:'xmltest_sequence']
}
}

并将插入语句更改为以下内容:

ps = c.prepareStatement("INSERT INTO xml_test (id, version, xml_text) 
VALUES (nextval('xmltest_sequence'), 0, ?)");

但是,当我运行该语句时,出现以下错误:

[java] 1 org.postgresql.util.PSQLException:错误:关系“xmltest_sequence”不存在

有什么想法吗?

最佳答案

在您的情况下,您可以使用 nextval 函数获取 PostgreSQL 中任何序列的值:

INSERT INTO xml_test (id, version, xml_text) VALUES (nextval('sequence_name_for_this_table'), 0, ?);

在您的 grails 域类中,您可以选择序列名称:

static mapping = {
id generator:sequence, params:[name:'sequence_name_for_this_table']
}

关于sql - 如何设置插入到具有下一个序列号的 grails 创建的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2822623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com