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