Java HSQLDB。创建表后添加外键时出错。

Java HSQLDB。创建表后添加外键时出错。,java,sql,foreign-keys,hsqldb,alter-table,Java,Sql,Foreign Keys,Hsqldb,Alter Table,创建表后,我需要在表中添加外键 我使用此请求:更改表课程添加外键id\u教师引用教师id 执行后,我得到错误:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象:PUBLIC.LESSONS 我怎样才能修好它 发送查询:Statement=connection.createStatement; 语句.executerequest 整个查询: 返回错误是因为您将整个脚本作为一条语句一起发送。它是在执行之前编译的。编译ALTERTABLE语句时,表尚未创建

创建表后,我需要在表中添加外键

我使用此请求:更改表课程添加外键id\u教师引用教师id

执行后,我得到错误:java.sql.SQLSyntaxErrorException:用户缺少权限或找不到对象:PUBLIC.LESSONS

我怎样才能修好它

发送查询:Statement=connection.createStatement; 语句.executerequest

整个查询:


返回错误是因为您将整个脚本作为一条语句一起发送。它是在执行之前编译的。编译ALTERTABLE语句时,表尚未创建


分别执行每个语句。同样如前所述,每个外键都需要一个ALTER TABLE语句。

不能在一个ALTER TABLE中添加多个外键。您需要为每个外键使用一个ALTER TABLE,但它实际上会导致不同的错误消息
CREATE TABLE lessons (
id int IDENTITY, 
lesson_name varchar(50) NOT NULL, 
id_teacher int NOT NULL,
id_group int NOT NULL
);

CREATE TABLE teachers (
id int IDENTITY,
teacher_name varchar(50) NOT NULL,
id_lesson int NOT NULL,
id_group int NOT NULL
);


CREATE TABLE groups (
id int IDENTITY,
group_name varchar(50) NOT NULL,
id_lesson int NOT NULL,
id_curator int NOT NULL
);

ALTER TABLE lessons 
ADD FOREIGN KEY (id_teacher) REFERENCES teachers (id) 
ADD FOREIGN KEY (id_group) REFERENCES groups (id);

ALTER TABLE teachers 
ADD FOREIGN KEY (id_lesson) REFERENCES lessons (id) 
ADD FOREIGN KEY (id_group) REFERENCES groups (id);

ALTER TABLE groups 
ADD FOREIGN KEY (id_lesson) REFERENCES lessons (id) 
ADD FOREIGN KEY (id_curator) REFERENCES teachers (id);