Tại sao ràng buộc khoá ngoài sau đây (mặc dù thực thi tốt) không được thi hành bởi SQLite? Làm thế nào tôi có thể đi về thực thi mối quan hệ?Khóa ngoài không được thực thi
CREATE TABLE User (
UserID TEXT Unique NOT NULL PRIMARY KEY,
FirstName TEXT NOT NULL,
LastName TEXT NOT NULL,
Username TEXT NOT NULL,
Password TEXT NOT NULL,
Email TEXT NOT NULL,
SignupDate TEXT NOT NULL
)
CREATE TABLE Category (
CategoryID TEXT Unique NOT NULL PRIMARY KEY,
UserID TEXT,
FOREIGN KEY(UserID) REFERENCES User(UserID)
)
Cảm ơn bạn rất nhiều vì đã phản ứng kịp thời. Tôi không bao giờ nhận thấy rằng trong tài liệu (sẽ trông khó khăn hơn thời gian tiếp theo). Chỉ cần cố chạy lệnh đó tôi nhận được lỗi sau: "Chuẩn bị SQLite() không thành công. LRI: ủy quyền bị từ chối DETAILS: không được phép EXPRESSION: PRAGMA foreign_keys = ON;" Tôi giả định rằng phiên bản mà họ đang sử dụng không hỗ trợ hoặc đã tắt chức năng này. Tôi có thể tạo kết quả cuối cùng bằng cách sử dụng trình kích hoạt không? Nếu có thể, vui lòng cung cấp một số cú pháp kích hoạt ví dụ cho SQLITE? –
@Maxim, tôi tin rằng các trình kích hoạt khóa ngoài của sqlite yêu cầu chính xác chức năng cơ bản giống như các khóa ngoại thường cũ (thường bị loại bỏ trong các bản dựng sqlite được nhúng mà muốn nhỏ và nhanh hơn chúng muốn cung cấp "năng lượng ACID quan hệ đầy đủ" tại hiệu suất đáng kể và chi phí dấu chân). –