【问题标题】:Apache Derby error 42802. How can I fix it?Apache Derby 错误 42802。我该如何解决?
【发布时间】:2021-04-12 19:23:00
【问题描述】:

Derby 抛出异常,代码为 42802。看来,这段特殊的代码是麻烦的根源,但我不明白为什么。

if(!resultSet.next())
        {
            statement=connection.prepareStatement("CREATE TABLE "+TABLE_NAME+"("+
                    "ID varchar(100) primary key,\n"+
                    "TITLE varchar(100),\n"+
                    "AUTHOR varchar(100),\n"+
                    "ISBN varchar(100),\n"+
                    "PUBLISHER varchar(100),\n"+
                    "PUBLISHED_YEAR varchar(100))"
            );
        }
        else
        {
             statement = connection.prepareStatement(INSERT INTO BOOKS VALUES ('A', 'A', 'A', 'A', 'A', 'A'));
             statement.execute();
        }

【问题讨论】:

  • 好吧,你的INSERT 字符串周围没有双引号......这是一个明显的问题,会导致编译器错误。
  • 对不起,在实际代码中查询周围有引号,我只是试图只提供 sn-p 并打错了。
  • 在下面查看斯蒂芬的答案。

标签: java sql derby


【解决方案1】:

错误 42802 是 “分配的值的数量与指定或隐含的列数不同。”

https://db.apache.org/derby/docs/10.4/ref/rrefexcept71493.html

现在INSERT 中的值数 (6) 似乎与 CREATE TABLE 声明的列数相匹配。但是,这并不意味着 actual 表结构与 that CREATE TABLE 代码匹配。检查BOOKS 表的实际表结构。

how to describe and show table in DERBY DB?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-21
    • 2018-11-10
    • 2016-09-09
    • 2015-03-23
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多