Snowflake JDBC驱动程序不支持GetGeneratedKeys

时间:2019-05-01 16:25:49

标签: jdbc snowflake

我正在尝试获取要插入的表的自动递增键。但是,雪花只是抛出了此异常 org.skife.jdbi.v2.exceptions.UnableToCreateStatementException: java.sql.SQLFeatureNotSupportedException

有人知道最新版本的Snowflake DB是否支持吗?

2 个答案:

答案 0 :(得分:0)

是的,我建议使用它作为从S3存储桶引用中复制到表的引用:https://community.snowflake.com/s/article/how-to-copy-into-a-table-with-an-auto-increment-column

看起来最好首先具有一个分阶段的版本,该表将表定义为具有自动增量的列。

能否请您分享一下如何插入和创建引发此错误的表数据?

答案 1 :(得分:0)

雪花JDBC driver documentation没有提到getGeneratedKeys()方法。

至少Snowflake JDBC驱动程序3.12.10不支持支持Statement#getGeneratedKeys()

SnowflakeStatementV1.java具有此实现,它返回一个空的ResultSet,这是一个错误的实现。根据JDBC API,由于显然不支持该功能,因此应抛出SQLFeatureNotSupportedException

  @Override
  public ResultSet getGeneratedKeys() throws SQLException {
    logger.debug("getGeneratedKeys()");
    raiseSQLExceptionIfStatementIsClosed();
    return new SnowflakeResultSetV1.EmptyResultSet();
  }