我正在使用postgres数据库,我从csv文件导入数据。当我尝试从Grails创建页面添加新条目时,它会给出
ERROR: duplicate key value violates unique constraint "course_pkey" Detail: Key (id)=(34) already exists.
表格中已有697个条目。如何让Grails继续保存id = 698的条目?
提前谢谢。
答案 0 :(得分:0)
您很可能希望在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)
}
答案 1 :(得分:0)
您可以在休眠状态下查看 de id secuen
select * from hibernate_sequence ;
对于 PostgreSQL,您可以在 pgAdmin 中编辑字段 last_value