您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
数据库外键(Foreign Key)是用于建立和加强两个表数据之间的链接的一列或多列。它确保了参照完整性,即只有那些在另一个表中存在的值才能插入到外键列中。以下是一些常见的数据库外键类型:
CREATE TABLE Orders (
OrderID int PRIMARY KEY,
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
CREATE TABLE OrderDetails (
OrderDetailID int PRIMARY KEY,
OrderID int,
ProductID int,
FOREIGN KEY (OrderID, ProductID) REFERENCES Orders(OrderID, ProductID)
);
CREATE TABLE EmployeeProjects (
EmployeeID int,
ProjectID int,
FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID),
FOREIGN KEY (ProjectID) REFERENCES Projects(ProjectID)
);
CREATE TABLE Logs (
LogID serial PRIMARY KEY,
UserID int,
Message text,
FOREIGN KEY (UserID) REFERENCES Users(UserID) DEFERRABLE INITIALLY IMMEDIATE
);
CREATE TABLE StudentsCourses (
StudentID int,
CourseID int,
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
CREATE TABLE Categories (
CategoryID int PRIMARY KEY,
ParentCategoryID int,
FOREIGN KEY (ParentCategoryID) REFERENCES Categories(CategoryID)
);
CREATE TABLE Orders (
OrderID int PRIMARY KEY,
CustomerID int,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
DELIMITER //
CREATE TRIGGER trg_check_customer BEFORE INSERT ON Orders
FOR EACH ROW BEGIN
IF NOT EXISTS (SELECT 1 FROM Customers WHERE CustomerID = NEW.CustomerID) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Invalid CustomerID';
END IF;
END //
DELIMITER ;
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。