首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HSQL错误: org.hsqldb.HsqlException:主键已经存在

HSQL错误: org.hsqldb.HsqlException:主键已经存在
EN

Stack Overflow用户
提问于 2016-04-03 17:35:04
回答 1查看 1.2K关注 0票数 0

我正在使用旧的ddlutils库在hsql中创建一个模式,并看到了这个错误。这很奇怪,因为主键只创建一次。

代码语言:javascript
复制
org.apache.ddlutils.DatabaseOperationException: Error while executing SQL -- -----------------------------------------------------------------------
-- musician
-- -----------------------------------------------------------------------

CREATE TABLE musician
(
    id INTEGER IDENTITY,
    name VARCHAR(2147483647),
    PRIMARY KEY (id)
)
        at org.apache.ddlutils.platform.PlatformImplBase.evaluateBatch(PlatformImplBase.java:331)
        at org.apache.ddlutils.platform.PlatformImplBase.createTables(PlatformImplBase.java:424)
        at org.apache.ddlutils.platform.PlatformImplBase.createTables(PlatformImplBase.java:409)
        at my.data.SchemaSync.applySchema(SchemaSync.java:104)
        at my.data.SchemaSync.start(SchemaSync.java:42)
        at my.deploy.BaseEnvironment$1.run(BaseEnvironment.java:38)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLSyntaxErrorException: primary key already exist
        at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
        at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
        at org.apache.ddlutils.platform.PlatformImplBase.evaluateBatch(PlatformImplBase.java:309)
        ... 6 more
Caused by: org.hsqldb.HsqlException: primary key already exist
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.error.Error.error(Unknown Source)
        at org.hsqldb.ParserTable.readConstraint(Unknown Source)
        at org.hsqldb.ParserTable.readTableContentsSource(Unknown Source)
        at org.hsqldb.ParserTable.compileCreateTableBody(Unknown Source)
        at org.hsqldb.ParserTable.compileCreateTable(Unknown Source)
        at org.hsqldb.ParserDDL.compileCreate(Unknown Source)
        at org.hsqldb.ParserCommand.compilePart(Unknown Source)
        at org.hsqldb.ParserCommand.compileStatements(Unknown Source)
        at org.hsqldb.Session.executeDirectStatement(Unknown Source)
        at org.hsqldb.Session.execute(Unknown Source)
        ... 9 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-04 10:09:55

标识的简单使用意味着生成主键。最好使用这个SQL标准表单:

代码语言:javascript
复制
CREATE TABLE musician
(
    id INTEGER GENERATED BY DEFAULT AS IDENTITY,
    name VARCHAR(2147483647),
    PRIMARY KEY (id)
)

版本2.3.4支持导致错误的语法

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36388742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档