【发布时间】:2014-03-06 15:47:56
【问题描述】:
创建表后,我需要在表中添加外键。
我使用这个请求:ALTER TABLE lessons ADD FOREIGN KEY (id_teacher) REFERENCES teachers (id);
执行后报错:java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: PUBLIC.LESSONS
我该如何解决?
发送查询:Statement statement = connection.createStatement();
statement.execute(request);
整个查询:
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);
【问题讨论】:
-
您不能使用单个
alter table添加多个外键,您需要为每个外键使用一个alter table(但实际上应该会导致不同的错误消息)
标签: java sql foreign-keys hsqldb alter-table