视图和触发器示例代码与截图示例5-21.docVIP

视图和触发器示例代码与截图示例5-21.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章 视图和触发器示例代码与截图 【例5-21】在选课系统中,管理员可以删除选修人数少于20人的课程信息,课程信息删除后与该课程相关的选课信息也应该随之删除,以便相关学生可以选修其他课程。请使用InnoDB存储引擎维护外键约束关系,向choose子表中的course_no字段添加外键约束,使得当删除父表course表中的某条课程信息时,级联删除与之对应的选课信息。 alter table choose drop foreign key choose_course_fk; alter table choose add constraint choose_course_fk foreign key (course_no) references course(course_no)on delete cascade; 如果InnoDB存储引擎的表之间存在外键约束关系,但是不存在级联选项;或者使用的数据库表为MyISAM(该表不支持外键约束关系),则可以使用触发器模拟实现“外键约束”之间的“级联选项”。 例如:下面的SQL语句分别创建了organization表(父表)与member表(子表)。这两个表之间虽然创建了外键约束关系,但是不存在级联删除选项。 create table organization( o_no int not null auto_increment, o_name varchar(32) default ‘’, primary key (o_no) )engine=innodb; create table member( m_no int not null auto_increment, m_name varchar(32) default ‘’, o_no int, primary key(m_no), constraint organization_member_fk foreign key (o_no) references organization (o_no) )engine=innodb; 使用下面的insert语句分别向两个表中插入若干条测试数据。 insert into organization (o_no,o_name) values (null,’o1’), (null,’o2’); insert into member(m_no,m_name,o_no) values (null,’m1’,1), (null,’m2’,1), (null,’m3’,1), (null,’m4’,2), (null,’m5’,2); 接着使用create trigger语句创建了名为organization_delete_before_trigger的触发器,该触发器实现的功能是:删除organization表中的某条信息前,首先删除成员member表中与之对应的信息。 delimiter $$ create trigger organization_delete_before_trigger before delete on organization for each row begin delete from member where o_no=old.o_no; end; $$ delimiter; 下面的SQL语句进行select语句查询member表中所有记录信息,然后使用delete语句删除o_no=1的信息,最后使用select语句重新查询member表中所有记录信息。运行结果如下图所示。 select * from member; delete from organization where o_no=1; select * from member;

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档