我正在使用postgres DB,并且从csv文件导入了数据。当我尝试从Grails创建页面添加新条目时,它给出了
ERROR: duplicate key value violates unique constraint "course_pkey" Detail: Key (id)=(34) already exists.
表中已经有697个条目。我如何让Grails继续保存id = 698的条目?
先感谢您。
最佳答案
您很可能想在Postgres数据库中的主键上使用 SERIAL
类型。 SERIAL
类型自动递增,并将默认值设置为下一个值。 Grails defaults使用Hibernate's native
(see section 5.1.2.2.1) id生成器策略,该策略将使用基础数据库。然后,您只需要在域实例中不指定id
即可让ID生成。
但是,如果您需要尝试下一个id值的确切用例,则可以使用try catch块。
try {
course.save(flush: true)
} catch (DuplicateKeyException e) { // Not sure what the exact exception is
course.id++
course.save(flush: true)
}
关于postgresql - Grails-重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34618665/