Nei*_*ton 5 java sql jdbc sequence
我需要以编程方式在数据存储区中生成序列,但需要能够检测它们的存在而不是在它们已经存在的情况下创建.有人知道提取此信息所需的JDBC元数据吗?
对DatabaseMetadata进行粗略扫描并未发现合适的方法; 我可以获取所有表/视图和关联的键/索引等,但不能获取该模式的序列.有没有人知道一种方法,最好是数据库独立的,但如果没有,那么对于尽可能多的数据库(想想oracle有一个user_sequence表?但这只是一个数据库,我需要支持其他数据库).
提前致谢
据我所知,没有任何直接的方法。因为每个数据库都有自己的生成/处理序列的方式。当它在Oracle中是序列时,它在mysql中是auto_incriment(不是序列,但接近它或达到某种相同的结果),在SQL Server中是身份列等。
我会做这样的事情 - 你必须制作一个界面:
interface ISequenceChecker{ // or some name which suits you
SequenceObject getSequence();
}
Run Code Online (Sandbox Code Playgroud)
不同数据库/存储的实现(下面给出了 Oracle 的 EG):
public class OracleSequenceChecker implements ISequenceChecker{
OracleSequenceObject getSequence(){
// some jdbc or similar call
// to get SELECT SEQUENCE_NAME.NEXTVAL FROM DUAL
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3053 次 |
| 最近记录: |