cloud - 通过java代码创建表的DDL语句失败
问题描述
原因:com.google.cloud.spanner.SpannerException:FAILED_PRECONDITION:读/写事务中不允许使用 DDL 语句。
有人可以突出云扳手的行为吗?我无法理解为什么这在扳手中没有得到更新
解决方案
您不能在读/写事务中使用 DDL 语句(例如创建表),只允许使用 DML 语句(查询、更新)。
要使用 Java 客户端执行 DDL 语句,您可以使用 SingleUseTransaction:https ://github.com/googleapis/java-spanner/blob/d617fb61eb0bba970c7cf4f43a4d50b54eb0f521/google-cloud-spanner/src/main/java/com/google/cloud/spanner /connection/SingleUseTransaction.java#L250。
推荐阅读
- git - git push and pull over http 在 Windows 上挂起,没有错误
- c# - Razor Pages ASP.NET Core 缓存 onGet 属性
- javascript - 浏览器打开时每个选项卡或窗口上可用的存储变量
- python - 在python中缓存函数的最后k个结果
- scala - 如何在不破坏现有设置的情况下更改 akka-scala 响应模型
- jboss - JBoss EAP 迁移 6.3 到 7.1
- sorting - Kotlin 密封类 - 如何按密封类排序,类似于按枚举排序
- unix - dig +trace 不做跟踪
- java - 无法从请求发送邮件,只能从 Main java
- ruby-on-rails - Rails 应用程序仅将“created_at”和“updated_at”添加到 DB