假设我有 3 张 table
courses(id)
students(id)
student_courses(Primary Key is (courses.id,students.id)
我必须输入大量数据,并且我希望一个学生最多选修 10 门类(class),我可以在创建表 student_courses
中执行某些操作来停止添加其他类(class)吗?学生将达到适当数量的类(class)?
最佳答案
您可以使用CHECK
约束来找出一名学生的人数。
按照以下步骤操作
即创建表。
CREATE TABLE IF NOT EXISTS student_courses
( Course_id int ,
student_id int ,
.
.
.
PRIMARY KEY (Course_id,student_id)
);
创建函数返回student_id
的计数
Create FUNCTION studentCount(studentId int)
Returns int
AS
BEGIN
Declare Count int
Select Count=Count(*) from student_courses Where student_id=studentId
Return Count
END
/
现在向表添加CHECK
约束
Alter Table student_courses add Constraint CK_student_course Check(studentCount(student_id)<=10)
每次当您在表中插入学生 ID 和类(class) ID 的数据时,它都会检查该学生是否有 10 条或以下记录,并限制在表中插入第 11 条记录。
关于mysql - 我可以对表创建进行限制吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59825037/