有三张表 student(student,name),section(section,course,num),enrolls(section,course,student)
要求:当删除student表中的一个学生时,enrolls表中要删除一组数据,同时section表中的num要进行改变
section表中,主码由section和course决定
我建了一个触发器
create trigger students_enrolls_de
after delete on students
for each ROW
begin
delete from enrolls
WHERE student=old.student;
create table a
select enrolls.section,count(enrolls.course) num,enrolls.course
from enrolls,section
where section.course=enrolls.course
and section.section=enrolls.section
group by enrolls.course,enrolls.section;
END;
本来想建立一个新表,然后与section表中的数据产生联系,达到修改num的目的
这是一半代码,显示语法错误,
是不是触发器中不能 建立新表
如果不能,这个问题应该怎样解决
请高手尽快回复,谢谢
10 个解决方案
#1
帮顶
#2
触发器中不要进行太复杂的东西。
建立表的咚咚要交给存储过程来处理。
建立表的咚咚要交给存储过程来处理。
#3
而且每次错误的信息要贴出来
#4
在这个表enrolls(section,course,student)新建一个触发器吧,指向section。
#5
建表操作不应该放在触发器中。
重新梳理一下你的逻辑
重新梳理一下你的逻辑
#6
LZ 先看看手册中关于触发器和存储过程的用法再说
^^
^^
#7
好的,谢谢各位,我再测试 一下~
又有一点新的想法,能不能在子查询中返回两个值,比如 在Enrolls表中同时返回 section和course两个值
又有一点新的想法,能不能在子查询中返回两个值,比如 在Enrolls表中同时返回 section和course两个值
#8
顺便问一句,现在的MYSQL中支持CHECK约束么~貌似不起什么作用...
#9
只是一个样子,暂时不起任何作用。
#10
哦,好的,谢谢,钻研存储过程去了...
搞定了大家一起+分~^.^
搞定了大家一起+分~^.^
#1
帮顶
#2
触发器中不要进行太复杂的东西。
建立表的咚咚要交给存储过程来处理。
建立表的咚咚要交给存储过程来处理。
#3
而且每次错误的信息要贴出来
#4
在这个表enrolls(section,course,student)新建一个触发器吧,指向section。
#5
建表操作不应该放在触发器中。
重新梳理一下你的逻辑
重新梳理一下你的逻辑
#6
LZ 先看看手册中关于触发器和存储过程的用法再说
^^
^^
#7
好的,谢谢各位,我再测试 一下~
又有一点新的想法,能不能在子查询中返回两个值,比如 在Enrolls表中同时返回 section和course两个值
又有一点新的想法,能不能在子查询中返回两个值,比如 在Enrolls表中同时返回 section和course两个值
#8
顺便问一句,现在的MYSQL中支持CHECK约束么~貌似不起什么作用...
#9
只是一个样子,暂时不起任何作用。
#10
哦,好的,谢谢,钻研存储过程去了...
搞定了大家一起+分~^.^
搞定了大家一起+分~^.^