一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 485|回复: 1
收起左侧

[OpenEdx]Databases: DB12 Views and Authorization (Mini 12)

[复制链接] |试试Instant~ |关注本帖
imposiwind 发表于 2014-12-26 20:52:11 | 显示全部楼层 |阅读模式

[其他]Databases #12 - Self-paced 2014@Stanford

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
第十二次作业,关于SQL的另一重点内容View 视图。视图是数据库架构的最高一层,用于对顶层用户隐藏数据和进行选择性展示。

引入了视图,也有修改视图连带对本身数据表的影响,因此需要SQL系统自行修正,或者像本次作业中要求编写的一样,用触发器处理这些情况。


----------------------------------------------------------------------
练习虽多但不难,其中Exercise Q4 有些问题。题目说是更新 mID, title, 和/或 stars,
他的测试却是:
update LateRating set mID = mID+50, title = 'Worth seeing', stars = 5 where stars >= 3;
update LateRating set title = 'Mediocre', ratingDate = null  where stars = 2.
这样不是有更新ratingDate 了吗?从结果看来他这句应该是没有执行成功的。
顺便附下这题答案,打出来的时候认真想下应该想通了,也可供参考。

create trigger LateRatingUpdate
instead of update of mid,title,stars on LateRating
for each row
when New.ratingDate = Old.ratingDate
begin
//同时改Movie 的title 和mID
update Movie
set title = new.title, mID = new.mID
where mID = Old.mID;

update Rating
set stars = New.stars
where ratingDate = Old.ratingDate and mID = Old.mID;


//分开最后再改Rating的mID,如果放在上面同时改会出现什么问题?
update Rating
set mID = new.mID
where mID = Old.mID;
end;

cert

cert

评分

1

查看全部评分

18258170717 发表于 2015-1-13 22:17:02 | 显示全部楼层
楼主给的答案不错,那题是有点模糊的感觉

cert view&authorization

cert view&authorization

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-5 04:34

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表