gpt4 book ai didi

java - 有什么方法可以使用 JDBC 检查 SEQUENCE 是否存在?

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:30 25 4
gpt4 key购买 nike

我需要以编程方式在数据存储中生成序列,但需要能够检测它们的存在,如果它们已经存在则不创建。有人知道提取此信息所需的 JDBC 元数据吗?

粗略浏览 DatabaseMetadata没有透露合适的方法;我可以获得所有表/ View 和关联的键/索引等,但不能获取该模式的序列。有没有人知道一种方法,最好是独立于数据库的,但如果不知道,那么尽可能多的数据库(认为 oracle 有一个 user_sequence 表?但这只是一个数据库,我需要支持其他数据库)。

提前致谢

最佳答案

Any way to check for the existence of a SEQUENCE using JDBC?

答案是否定的

SEQUENCE 元数据的支持不是 JDBC 规范的一部分。如果您想找到这些信息,您需要让您的代码知道它正在处理的数据库类型,并对用于表示数据库模式等的供应商特定表执行相关查询。

您也许可以找到执行此操作的第 3 方 Java 库……但我不知道有一个。


实际上,理论上您可以通过尝试创建同名序列来测试 SEQUENCE 是否存在。但是随后您遇到了各种其他问题,例如处理 CREATE 的不同语法,删除您作为测试创建的 SEQUENCE,诊断特定于供应商的错误代码以确定 CREATE 失败的原因。您最好查询供应商特定的架构表。

关于java - 有什么方法可以使用 JDBC 检查 SEQUENCE 是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20948536/

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