要检查列是否自动递增,我可以执行以下操作
Connection con = ...
DatabaseMetaData meta = con.getMetaData();
ResultSet metaCols = meta.getColumns(catalog, schema, table, "%");
while ( metaCols.next() )
String value = rs.getString("IS_AUTOINCREMENT")
...
工作正常,除了 Sybase 数据库。我已经尝试使用 jTDS 和 JConnect 驱动程序,但是对于这两个驱动程序我都遇到了这个异常:
java.sql.SQLException: Invalid column name IS_AUTOINCREMENT.
是否还有其他方法可以查明 Sybase 中的列是否自动递增? 我认为“IS_AUTOINCREMENT”是 JDBC4 的一个特性,而 jTDS 是一个 JDBC4 兼容的驱动程序。
最佳答案
Sybase 使用“标识”列而不是“默认自动增量”,这就是我相信您收到此消息的原因。
尝试检查 TYPE_NAME 列是否包含关键字“identity”。
标识列的行为也有点不同,但这是一个旁白。
关于java - 使用 JDBC 检查 Sybase 中的列是否自动递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553751/