我是用mysql做的一个学生选课系统,注册系统有一个数据表,表中的字段是sno (学生号)和cno (课程号),如何在mysql中创建触发器来防止学生选择重复课程?
发布于 2017-12-05 21:58:04
设置注册表,将student id和course id 一起作为主键。如果你能避免触发,这种方式会更容易。
如果你想使用触发器:
delimiter //
drop trigger if exists limitCoursesTrigger //
create trigger limitCoursesTrigger before insert on register_table
for each row
begin
declare msg varchar(128);
if exists(select * from register_table where studentid=new.studentid and courseid=new.courseid)
then
set msg = concat('Error: The student has already registered for this course !');
signal sqlstate '45000' set message_text = msg;
end if;
end //https://stackoverflow.com/questions/47655183
复制相似问题