gpt4 book ai didi

spring - 在使用 liquibase 填充数据库后,如何更正 Postgres 序列?

转载 作者:行者123 更新时间:2023-11-29 14:20:58 25 4
gpt4 key购买 nike

我正在处理一个将 Spring MVC 与 JPA、Liquibase 和 Postgres 结合使用的项目。我有一些人口脚本 (SQL),其中包含州、城市、邮政编码和地址,在表/值之间具有适当的关系。

<changeSet id="10" author="cezar">
<sql dbms="postgresql"
endDelimiter=";"
splitStatements="true"
stripComments="true">
INSERT INTO ..... VALUES (.....);
</sql>
</changeSet>

好吧,一切顺利,Liquibase 实际上填充了数据库,但是当我需要添加新地址时出现了问题,并且出现了一些违反主键的异常。我知道我需要修复序列,但在应用程序启动时填充数据库后我该怎么做?

提前致谢!

最佳答案

您可以只添加另一个调用 setval() 的 SQL 语句在你的变更集中:

<changeSet id="10" author="cezar">
<sql dbms="postgresql"
endDelimiter=";"
splitStatements="true"
stripComments="true">
INSERT INTO ..... VALUES (.....);
SELECT setval('sequence_name', (select max(id_column) from the_table));
</sql>
</changeSet>

然而,只有在没有同时对表进行并发插入的情况下,这才会正常工作

关于spring - 在使用 liquibase 填充数据库后,如何更正 Postgres 序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255639/

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