Cho một bảng trong schema gốc:cơ sở dữ liệu H2: đề cập đến một bảng trong schema gốc từ một ràng buộc khoá ngoại
CREATE TABLE user (
username VARCHAR(50),
password VARCHAR(50));
và một bảng trong Quiz
schema:
CREATE TABLE Quiz.Results (
username VARCHAR(50),
points INT,
FOREIGN KEY (username) REFERENCES user(username));
Tôi không thể để thực sự tạo khóa ngoại, vì cơ sở dữ liệu tuyên bố bảng user
không thực sự tồn tại. Sau đó tôi không thể thêm khoá ngoại:
ALTER TABLE QUIZ.RESULTS
ADD FOREIGN KEY (username) REFERENCES user (username)
Cả hai bảng đều được lưu trữ trong cùng một cơ sở dữ liệu.
Vì đây chỉ là một phần bài tập về nhà, tôi rất vui khi chỉ đơn giản là bỏ qua thêm khóa ngoại. Nhưng tôi tò mò nếu điều này thực sự là một hạn chế trong H2, một lỗi, hoặc nếu nó hoạt động như dự định.
Tôi có thể tham khảo bảng user
bên ngoài lược đồ quiz
không?
Biết được sơ đồ mặc định (những gì tôi gọi là 'schema root') tên giúp. Cảm ơn! –
Tôi có thể hỏi tại sao bạn thêm 'NGOẠI TỆ (tên người dùng)' hai lần? Có vẻ như bạn thêm nó một lần trong định nghĩa bảng cho 'Quiz.Results', sau đó là lần thứ hai trong câu lệnh' ALTER TABLE' của bạn. –
@CraigOtis Bạn nói đúng, nó phải là cái này hay cái kia. Tôi đã thay đổi câu trả lời. –