HSQLDB:由于“用户缺少权限或找不到对象”,无法删除互锁表且无法删除外键
Posted
技术标签:
【中文标题】HSQLDB:由于“用户缺少权限或找不到对象”,无法删除互锁表且无法删除外键【英文标题】:HSQLDB: Unable to delete interlocking tables and can't delete the foreign keys due to "user lacks priviledge or object not found 【发布时间】:2017-07-09 16:22:21 【问题描述】:我正在尝试从 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 视图 找到错误消息中引用的任何外键.
我注意到一个奇怪的事情是错误消息中引用的外键发生了变化。这似乎取决于我用来连接的工具。
【问题讨论】:
您是否尝试过删除列 EMPLOYEE_ID、EMPLOYEE_NAME,然后是 DIVISION 表,然后是 EMPLOYEE 表? mysql服务器上的Wfm ...否则你必须找到约束并首先删除它们。 【参考方案1】:有一个简单的解决方案:
DROP TABLE SUSOKU.DIVISION CASCADE
同样,当您想从具有 FK 引用的表中删除数据时:
TRUNCATE TABLE SUSOKU.DIVISION AND COMMIT NO CHECK
【讨论】:
以上是关于HSQLDB:由于“用户缺少权限或找不到对象”,无法删除互锁表且无法删除外键的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot 用户缺少权限或找不到对象 HSQLDB
Java HQL org.hsqldb.HsqlException:用户缺少权限或找不到对象
HSQLDB:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象
Hibernate、mysql 和 Tomee - org.hsqldb.HsqlException:用户缺少权限或找不到对象