mysql中三张表建立触发器问题

cazar 2008-01-04 03:39:25
EMS SQL Manager 2007 for MySQL


有三张表 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的目的
这是一半代码,显示语法错误,
是不是触发器中不能 建立新表

如果不能,这个问题应该怎样解决

请高手尽快回复,谢谢
...全文
220 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cazar 2008-01-07
  • 打赏
  • 举报
回复
顺便问一句,现在的MYSQL中支持CHECK约束么~貌似不起什么作用...
cazar 2008-01-07
  • 打赏
  • 举报
回复
好的,谢谢各位,我再测试 一下~
又有一点新的想法,能不能在子查询中返回两个值,比如 在Enrolls表中同时返回 section和course两个值
cazar 2008-01-07
  • 打赏
  • 举报
回复
哦,好的,谢谢,钻研存储过程去了...
搞定了大家一起+分~^.^
懒得去死 2008-01-07
  • 打赏
  • 举报
回复
只是一个样子,暂时不起任何作用。
懒得去死 2008-01-06
  • 打赏
  • 举报
回复
LZ 先看看手册中关于触发器和存储过程的用法再说
^^
lsupper 2008-01-06
  • 打赏
  • 举报
回复
在这个表enrolls(section,course,student)新建一个触发器吧,指向section。
OracleRoob 2008-01-06
  • 打赏
  • 举报
回复
建表操作不应该放在触发器中。

重新梳理一下你的逻辑

懒得去死 2008-01-04
  • 打赏
  • 举报
回复
而且每次错误的信息要贴出来
懒得去死 2008-01-04
  • 打赏
  • 举报
回复
触发器中不要进行太复杂的东西。
建立表的咚咚要交给存储过程来处理。
linxren 2008-01-04
  • 打赏
  • 举报
回复
帮顶

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧