HSQLDB:由于“用户缺少权限或未找到对象

时间:2017-07-09 16:22:22

标签: java sql jpa hsqldb razorsql

我试图从HSQLDB服务器数据库中删除两个实验表。但是,由于自动生成的外键,每次尝试都失败了。如果没有把整个数据库吹走在文件系统上,我的想法已经不多了,并且会感谢你们可能有的任何指针或建议。

表和索引由JPA创建。生成的表的DDL是:

CREATE TABLE SUDOKU.DIVISION (
    DIVISION_ID BIGINT NOT NULL,
    DIVISION_NAME VARCHAR(255),
    CHIEF_EMPLOYEE_ID BIGINT,
    DEPUTYCHIEF_EMPLOYEE_ID BIGINT,
    PRIMARY KEY (DIVISION_ID)
);

CREATE TABLE SUDOKU.EMPLOYEE (
    EMPLOYEE_ID BIGINT NOT NULL,
    DIVISION_ID BIGINT,
    EMPLOYEE_NAME VARCHAR(255),
    PRIMARY KEY (EMPLOYEE_ID)
);
ALTER TABLE SUDOKU.DIVISION
    ADD FOREIGN KEY (CHIEF_EMPLOYEE_ID,DEPUTYCHIEF_EMPLOYEE_ID) 
    REFERENCES EMPLOYEE (EMPLOYEE_ID,EMPLOYEE_ID);

ALTER TABLE SUDOKU.EMPLOYEE
    ADD FOREIGN KEY (DIVISION_ID) 
    REFERENCES DIVISION (DIVISION_ID);

当我尝试删除任一表时,删除失败,错误消息类似于以下ERROR: is referenced by FOREIGN KEY constraint: SUDOKU.FKSPXEERGASS9WA2IXFLHC20IOY in statement [DROP TABLE SUDOKU.DIVISION] Error Code: -5533

所以,然后我尝试删除引用的'外键' 失败并显示错误消息user lacks privilege or object not found

我无法使用 RazorSQL 或Eclipse Neon-3中的 JPA视图找到错误消息中引用的任何外键

我注意到一个奇怪的事情是错误消息中引用的外键发生了变化。它似乎取决于我用来连接的工具。

1 个答案:

答案 0 :(得分:0)

有一个简单的解决方案:

 DROP TABLE SUSOKU.DIVISION CASCADE

同样,当您想要从具有FK引用的表中删除数据时:

 TRUNCATE TABLE SUSOKU.DIVISION AND COMMIT NO CHECK