资源描述:
《触发器及建表sql语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、下面是机构管理部分数据库的建立createtableusers(usernamevarchar(8)primarykey,passwdvarchar(15)notnull,permitintegernotnull,orgvarchar(30)notnull);createtablecounty(county_namevarchar(10)primarykey,initchar(2));createtablehospital(codechar(4)primarykey,hos_namevarchar(20)notNULL,countyvarchar(10)notnu
2、ll,foreignkey(county)referencescounty(county_name));createtablecommunity(codechar(4)primarykey,hos_namevarchar(20)notNULL,countyvarchar(10)notnull,foreignkey(county)referencescounty(county_name));下面是机构管理的触发器和数据初始化社区信息表community触发器所完成的功能:1、插入功能:当向community输入一个新用户的时候会在users表默认生成两个账户,账户名
3、为两位的区县代号+四位的社区代号+00(或者02),相应的账号密码为账号+888,,权限分别为33和652、更新功能:不能更新该社区所在的区县号,其它参数可以改变。修改社区相关信息时会改变users表下的相应账户信息,按照默认的情况同时更新信息上报员和账户管理员的用户名和密码3、删除功能:如果删除社区,会同时在users表中删除该社区所拥有的信息上抱员和账户管理员的账户和密码createorreplacetriggercommunity_triggerafterinsertorupdateordeleteoncommunityforeachrowbeginifin
4、sertingthenInsertintousers(username,passwd,permit,org)values((selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
5、
6、:NEW.code
7、
8、'00',(selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
9、
10、:NEW.code
11、
12、'00'
13、
14、'888',33,:NEW.hos_name);Insertintousers(username,passwd,permit,org)valu
15、es((selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
16、
17、:NEW.code
18、
19、'02',(selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
20、
21、:NEW.code
22、
23、'02'
24、
25、'888',65,:NEW.hos_name);elsifupdatingthenUpdateuserssetusername=(selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
26、
27、:NEW.
28、code
29、
30、'00',passwd=(selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
31、
32、:NEW.code
33、
34、'00'
35、
36、'888',org=:NEW.hos_nameWhereusername=(selectDISTINCTinitfromcountywherecounty_name=:OLD.county)
37、
38、:OLD.code
39、
40、'00';Updateuserssetusername=(selectDISTINCTinitfromcountywherecounty_name=:NEW.cou
41、nty)
42、
43、:NEW.code
44、
45、'02',passwd=(selectDISTINCTinitfromcountywherecounty_name=:NEW.county)
46、
47、:NEW.code
48、
49、'02'
50、
51、'888',org=:NEW.hos_nameWhereusername=(selectDISTINCTinitfromcountywherecounty_name=:OLD.county)
52、
53、:OLD.code
54、
55、'02';elsifdeletingthenDeletefromuserswhereusername=(selectDISTINCTinitf
56、romco