[英]How do I refer from another table for SQL?
情況是這樣的:我有一張可供員工使用的桌子,另一張可供課程使用。 當然,我將有一個名為coordinator的列,它將引用staff_id。 這是因為有些員工是協調員,有些則不是,等等。
Staff_id是一個IDENTITY,因此它是自動遞增的,我必須確保課程表中的不會跟隨此自動遞增。
我只是不確定如何為這種情況實現檢查約束。
我必須確保課程表中的內容不會跟隨此自動增量。
您是否僅表示您不希望課程表中的coordinator
字段自動遞增? 除非您告知,否則不會。
例如,這兩個表可以正常工作:
CREATE TABLE Staff
(
`staff_id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(64),
PRIMARY KEY (`staff_id`)
)
CREATE TABLE Courses
(
`course_id` INT NOT NULL AUTO_INCREMENT,
`coordinator_id` INT NOT NULL,
`coursename` VARCHAR(64),
PRIMARY KEY (`course_id`),
INDEX `coordid` (`coordinator_id`)
)
當然,正如GarethD所說,您可以另外添加約束以確保正確填寫了coordinator_id並在staff中存在相應的記錄。
如果我正確地理解了您的需求,則可以向表中添加外鍵約束,以便其引用自身:
ALTER TABLE Staff
ADD CONSTRAINT FK_Staff_Coordinator FOREIGN KEY (Coordinator)
REFERENCES Staff (StaffID)
附錄
我想我誤解了您的要求,我錯過了有關課程表的部分。 所以現在我認為課程表需要鏈接回人員表,在這種情況下,命令將是:
ALTER TABLE Course
ADD CONSTRAINT FK_Course_Coordinator FOREIGN KEY (Coordinator)
REFERENCES Staff (StaffID)
當然,您可以自由地為約束實現自己的命名約定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.