簡體   English   中英

如何從另一個表引用SQL?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM