首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >io.r2dbc.spi.R2dbcBadGrammarException:重复列名“?列?”;SQL语句

io.r2dbc.spi.R2dbcBadGrammarException:重复列名“?列?”;SQL语句
EN

Stack Overflow用户
提问于 2022-11-03 11:52:18
回答 1查看 18关注 0票数 0

我尝试用H2 DB测试我的代码。我对所有步骤(init、schema、data)都有一些迁移。在运行迁移时,我使用nkonev r2dbc-迁移

当我试图运行一个测试时,我捕获了一个异常“SQL语法异常”,这意味着H2不能使用‘LIMIT’。

代码语言:javascript
复制
r2dbc:h2:mem:///testdb?options=MODE=PostgreSQL

但它只给了我另一个问题:

代码语言:javascript
复制
io.r2dbc.spi.R2dbcBadGrammarException: Duplicate column name "?column?"; SQL statement:
insert into "migrations_lock"(id, locked) select * from (select 1, false) x  where not exists(select * from "migrations_lock") [42121-214]

我试过所有方言,就像一个模式属性。我试过所有方言,就像迁移方言一样。但什么都没变。

我做错什么了?

应用程序为:SpringBoot2.7.5+ WebFlux + Kotlin

我的等级依赖关系:

代码语言:javascript
复制
implementation("name.nkonev.r2dbc-migrate:r2dbc-migrate-spring-boot-starter:2.7.8")

implementation("io.r2dbc:r2dbc-pool:0.9.2.RELEASE")
implementation("io.r2dbc:r2dbc-spi:1.0.0.RELEASE")
implementation("io.r2dbc:r2dbc-postgresql:0.8.13.RELEASE")
implementation("io.r2dbc:r2dbc-h2:0.9.1.RELEASE")

当我像往常一样用PostgreSQL运行这个应用程序时,一切都很好。

我试图为H2换一种方言。我想它能帮我解决问题。但PostgreSQL/Oracle没有提供帮助。Oracle在串口上有问题,为了解决这个问题,我改变了迁移。

EN

回答 1

Stack Overflow用户

发布于 2022-11-03 14:45:58

在我的例子中,解决方案是用偏移量改变关键字限制的位置。

从…

代码语言:javascript
复制
order by v.id asc
offset 0
limit 10

代码语言:javascript
复制
order by v.id asc
limit 10
offset 0

这个小小的更改给了我一个选项,返回到默认的H2设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74302616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档