存储过程实现创建表和外键

  1. DELIMITER $$   
  2.   
  3. DROP PROCEDURE IF EXISTS `mytest`.`newtest`$$   
  4.   
  5. CREATE PROCEDURE `newtest`(in bzxxinfo varchar(20),in swxxinfo varchar(20),in swyycfinfo varchar(20),   
  6.   in swajsinfo varchar(20),in swzfsinfo varchar(20),in swxtsczsinfo varchar(20),in cksrlinfo varchar(20),   
  7.   in shjclxinfo varchar(20),in shjcxminfo varchar(20),in brdainfo varchar(20),   
  8.   in brybinfo varchar(20),in brjtqjinfo varchar(20),in jwbsinfo varchar(20),   
  9.   in bryypcinfo varchar(20),in brpcjginfo varchar(20))   
  10. BEGIN  
  11. /*1、病症信息表 (BZXXINFO)*/   
  12. SET @csql=concat("create table if not exists ",bzxxinfo, " (bzxxid int(11) NOT NULL auto_increment,   
  13.   bzxxfid int(4) NOT NULL default '0',   
  14.   bzxxmc varchar(100) NOT NULL default '',   
  15.   bzxxpym varchar(100) NOT NULL default '',   
  16.   bzms text,   
  17.   bzbj varchar(1) NOT NULL default '',   
  18.   PRIMARY KEY  (`bzxxid`))");   
  19. PREPARE create_stmt from @csql;   
  20. EXECUTE create_stmt;   
  21. /*2、食物信息表 (SWXXINFO)*/   
  22. SET @csql=concat("create table if not exists ",swxxinfo, " ( swxxid int(11) NOT NULL auto_increment,   
  23.   swxxfid int(4) NOT NULL default '-100',   
  24.   swxxmc varchar(100) NOT NULL default '',   
  25.   swxxpym varchar(100) NOT NULL default '',   
  26.   lxbj varchar(1) NOT NULL default '',   
  27.   swxxbz varchar(300) default NULL,   
  28.   PRIMARY KEY  (`swxxid`))");   
  29. PREPARE create_stmt from @csql;   
  30. EXECUTE create_stmt;   
  31. /*3、食物一般营养成份信息表 (SWYYCFINFO)*/   
  32. SET @csql=concat("create table if not exists ",swyycfinfo, " ( swxxybid int(4) NOT NULL default '0',   
  33.   edible int(4) default NULL,   
  34.   water float default NULL,   
  35.   energy_kcal float default NULL,   
  36.   energy_kj float default NULL,   
  37.   protein float default NULL,   
  38.   fat float default NULL,   
  39.   cho float default NULL,   
  40.   dietary_fiber_t float default NULL,   
  41.   dietary_fiber_s float default NULL,   
  42.   dietary_fiber_i float default NULL,   
  43.   cholesterol float default NULL,   
  44.   ash float default NULL,   
  45.   vita float default NULL,   
  46.   carotene float default NULL,   
  47.   retinol float default NULL,   
  48.   thiamin float default NULL,   
  49.   riboflavin float default NULL,   
  50.   vitb6 float default NULL,   
  51.   vitb12 float default NULL,   
  52.   pa float(9,2) default NULL,   
  53.   folate float default NULL,   
  54.   niacin float default NULL,   
  55.   vitc float default NULL,   
  56.   vitd float default NULL,   
  57.   vite_t float default NULL,   
  58.   vite_ate float default NULL,   
  59.   vitk float default NULL,   
  60.   ca float default NULL,   
  61.   p float default NULL,   
  62.   k float default NULL,   
  63.   na float default NULL,   
  64.   mg float default NULL,   
  65.   fe float default NULL,   
  66.   zn float default NULL,   
  67.   se float default NULL,   
  68.   cu float default NULL,   
  69.   mn float default NULL,   
  70.   i float default NULL,   
  71.   f float(9,2) default NULL,   
  72.   cr float(9,2) default NULL,   
  73.   mo float(9,2) default NULL,   
  74.   choline float(9,2) default NULL,   
  75.   biotin float(9,2) default NULL,   
  76.   yycfbz varchar(300) default NULL,   
  77.   PRIMARY KEY  (`swxxybid`))");   
  78. PREPARE create_stmt from @csql;   
  79. EXECUTE create_stmt;   
  80. /*4、食物氨基酸含量信息表 (SWAJSINFO)*/   
  81. SET @csql=concat("create table if not exists ",swajsinfo, " (swxxajsid int(11) NOT NULL default '0',   
  82.   water_a float default NULL,   
  83.   protein_a float default NULL,   
  84.   iie float default NULL,   
  85.   leu float default NULL,   
  86.   lys float default NULL,   
  87.   saa float default NULL,   
  88.   met float default NULL,   
  89.   cys float default NULL,   
  90.   aaa float default NULL,   
  91.   phe float default NULL,   
  92.   tyr float default NULL,   
  93.   thr float default NULL,   
  94.   trp float default NULL,   
  95.   val float default NULL,   
  96.   arg float default NULL,   
  97.   his float default NULL,   
  98.   ala float default NULL,   
  99.   asp float default NULL,   
  100.   glu float default NULL,   
  101.   gly float default NULL,   
  102.   pro float default NULL,   
  103.   ser float default NULL,   
  104.   swajsbz varchar(300) default NULL,   
  105.   PRIMARY KEY  (`swxxajsid`))");   
  106. PREPARE create_stmt from @csql;   
  107. EXECUTE create_stmt;   
  108. /*5、食物脂肪酸含量信息表 (SWZFSINFO)*/   
  109. SET @csql=concat("create table if not exists ",swzfsinfo, " (swxxzfsid int(4) NOT NULL default '0',   
  110.   fatt float default NULL,   
  111.   sfa float default NULL,   
  112.   mufa float default NULL,   
  113.   pufa float default NULL,   
  114.   un_k float default NULL,   
  115.   swzfsbz varchar(300) default NULL,   
  116.   PRIMARY KEY  (`swxxzfsid`))");   
  117. PREPARE create_stmt from @csql;   
  118. EXECUTE create_stmt;   
  119. /*6、食物血糖生成指数信息表 (SWXTSCZSINFO)*/   
  120. SET @csql=concat("create table if not exists ",swxtsczsinfo, " ( swxxxtid int(4) NOT NULL default '0',   
  121.   gi float default NULL,   
  122.   sjly varchar(1) default NULL,   
  123.   swqthlbz varchar(300) default NULL,   
  124.   PRIMARY KEY  (`swxxxtid`))");   
  125. PREPARE create_stmt from @csql;   
  126. EXECUTE create_stmt;   
  127. /*7、居民膳食营养素参考摄入量信息表 (CKSRLINFO)*/   
  128. SET @csql=concat("create table if not exists ",cksrlinfo, " (cksrlid int(11) NOT NULL auto_increment,   
  129.   dris_lx varchar(1) NOT NULL,   
  130.   nlfw varchar(10) NOT NULL,   
  131.   xbid varchar(1) NOT NULL,   
  132.   sjly varchar(1) NOT NULL,   
  133.   tlhdspid varchar(1) NOT NULL,   
  134.   energymj decimal(9,2) default NULL,   
  135.   energykcal decimal(9,2) default NULL,   
  136.   protein decimal(9,2) default NULL,   
  137.   fat decimal(9,2) default NULL,   
  138.   ca decimal(9,2) default NULL,   
  139.   p decimal(9,2) default NULL,   
  140.   k decimal(9,2) default NULL,   
  141.   na decimal(9,2) default NULL,   
  142.   mg decimal(9,2) default NULL,   
  143.   fe decimal(9,2) default NULL,   
  144.   i decimal(9,2) default NULL,   
  145.   zn decimal(9,2) default NULL,   
  146.   se decimal(9,2) default NULL,   
  147.   cu decimal(9,2) default NULL,   
  148.   f decimal(9,2) default NULL,   
  149.   cr decimal(9,2) default NULL,   
  150.   mn decimal(9,2) default NULL,   
  151.   mo decimal(9,2) default NULL,   
  152.   vita decimal(9,2) default NULL,   
  153.   vitd decimal(9,2) default NULL,   
  154.   vite decimal(9,2) default NULL,   
  155.   vitb1 decimal(9,2) default NULL,   
  156.   vitb2 decimal(9,2) default NULL,   
  157.   vitb6 decimal(9,2) default NULL,   
  158.   vitb12 decimal(9,2) default NULL,   
  159.   vitc decimal(9,2) default NULL,   
  160.   pa decimal(9,2) default NULL,   
  161.   fa decimal(9,2) default NULL,   
  162.   niacin decimal(9,2) default NULL,   
  163.   choline decimal(9,2) default NULL,   
  164.   biotin decimal(9,2) default NULL,   
  165.   cksrlbz varchar(300) default NULL,   
  166.   PRIMARY KEY  (`cksrlid`))");   
  167. PREPARE create_stmt from @csql;   
  168. EXECUTE create_stmt;   
  169. /*8、生化检查类型信息表 (SHJCLXINFO)*/   
  170. SET @csql=concat("create table if not exists ",shjclxinfo, " (shjclxid int(11) NOT NULL auto_increment,   
  171.   shjclxbh int(4) NOT NULL default '0',   
  172.   shjclxmc varchar(100) NOT NULL default '',   
  173.   shjclxpym varchar(100) NOT NULL default '',   
  174.   PRIMARY KEY  (`shjclxid`))");   
  175. PREPARE create_stmt from @csql;   
  176. EXECUTE create_stmt;   
  177. /*9、生化检查项目信息表 (SHJCXMINFO)*/   
  178. SET @csql=concat("create table if not exists ",shjcxminfo, " ( shjcxmid int(11) NOT NULL auto_increment,   
  179.   shjclxid int(4) NOT NULL default '0',   
  180.   shjcxmbh int(4) NOT NULL default '0',   
  181.   shjcxmmc varchar(100) NOT NULL default '',   
  182.   shjcxmpym varchar(100) NOT NULL default '',   
  183.   PRIMARY KEY  (`shjcxmid`))");   
  184. PREPARE create_stmt from @csql;   
  185. EXECUTE create_stmt;   
  186. /*10.病人基本档案信息表 (BRDAINFO)*/   
  187. SET @csql=concat("create table if not exists ",brdainfo, " ( brdaid int(11) NOT NULL auto_increment,   
  188. brdabh varchar(20) NOT NULL,   
  189. brxm varchar(50) NOT NULL,   
  190. pym varchar(50) NOT NULL,   
  191. xbid varchar(1) NOT NULL,   
  192. csrg varchar(10) NOT NULL,   
  193. nl varchar(3) NOT NULL,    
  194. brlx varchar(2) NOT NULL,    
  195. brsg varchar(3) NOT NULL,   
  196. brtz varchar(3) NOT NULL,   
  197.  tzzs varchar(10) NOT NULL,   
  198. fpcdid varchar(1) NOT NULL,   
  199. tlhdid varchar(1) NOT NULL,   
  200. czrq varchar(10) NOT NULL,   
  201. zyzdid int(4) NOT NULL,   
  202. zljg varchar(2000) NOT NULL,   
  203. ysxg varchar(50) NOT NULL,   
  204. yzbm varchar(10) NOT NULL,   
  205. lxdz varchar(100) NOT NULL,   
  206. lxdh varchar(30) NOT NULL,   
  207. zxsj varchar(30) NOT NULL,     
  208. PRIMARY KEY  (`brdaid`))");   
  209. PREPARE create_stmt from @csql;   
  210. EXECUTE create_stmt;   
  211. /*11.病人一般信息表 (BRYBINFO) */   
  212. SET @csql=concat("create table if not exists ",brybinfo, " (   
  213.   brybid int(11) NOT NULL auto_increment,   
  214.   brdaid int(4) NOT NULL,   
  215.   mrwy varchar(10) NOT NULL,   
  216.   cstz varchar(3) NOT NULL,   
  217.   tl varchar(3) NOT NULL,   
  218.   cjpm varchar(3) NOT NULL,   
  219.   kds varchar(2) NOT NULL,   
  220.   hwhd varchar(2) NOT NULL,   
  221.   pftx varchar(10) NOT NULL,   
  222.   pzhd varchar(3) NOT NULL,   
  223.   sbzw varchar(3) NOT NULL,   
  224.   yw varchar(3) NOT NULL,   
  225.   tw varchar(3) NOT NULL,   
  226.   hd varchar(10) NOT NULL,   
  227.   dh varchar(10) NOT NULL,   
  228.   db varchar(50) NOT NULL,   
  229.   fat varchar(10) NOT NULL,   
  230.   fatb varchar(10) NOT NULL,   
  231.   smm varchar(50) NOT NULL,   
  232.   obb varchar(10) NOT NULL,   
  233.   bmr varchar(50) NOT NULL,   
  234.   scnl varchar(10) NOT NULL,   
  235.   sczf varchar(10) NOT NULL,   
  236.   scsf varchar(10) NOT NULL,   
  237.   zxsj varchar(30) NOT NULL,   
  238.   PRIMARY KEY  (`brybid`))");   
  239. PREPARE create_stmt from @csql;   
  240. EXECUTE create_stmt;   
  241. /*12 病人既往病史信息表 (JWBSINFO) */   
  242. SET @csql=concat("create table if not exists ",jwbsinfo, " (   
  243.   `jwbsid` int(11) NOT NULL auto_increment,   
  244.   `brdaid` int(4) NOT NULL,   
  245.   `bzxxid` int(4) NOT NULL,   
  246.   `zxsj` varchar(30) NOT NULL,   
  247.   PRIMARY KEY  (`jwbsid`))");   
  248. PREPARE create_stmt from @csql;   
  249. EXECUTE create_stmt;   
  250. /*13.病人家庭、起居和饮食习惯信息表 (BRJTQJINFO)*/   
  251. SET @csql=concat("create table if not exists ",brjtqjinfo, " (   
  252.   `brdaid` varchar(4) NOT NULL,   
  253.   `jtptz` varchar(20) NOT NULL,   
  254.   `yxhl` varchar(10) NOT NULL,   
  255.   `ztxh` varchar(10) NOT NULL,   
  256.   `wcyc` varchar(10) NOT NULL,   
  257.   `zccs` varchar(10) NOT NULL,   
  258.   `xccs` varchar(10) NOT NULL,   
  259.   `pjxf` varchar(10) NOT NULL,   
  260.   `jtsr` varchar(10) NOT NULL,   
  261.   `fqnl` varchar(3) NOT NULL,   
  262.   `fqsg` varchar(3) NOT NULL,   
  263.   `fqtz` varchar(3) NOT NULL,   
  264.   `fqbmi` varchar(10) NOT NULL,   
  265.   `fqjb` varchar(50) NOT NULL,   
  266.   `mqnl` varchar(3) NOT NULL,   
  267.   `mqsg` varchar(3) NOT NULL,   
  268.   `mqtz` varchar(3) NOT NULL,   
  269.   `mqbmi` varchar(10) NOT NULL,   
  270.   `mqjb` varchar(50) NOT NULL,   
  271.   `jcsd` varchar(10) NOT NULL,   
  272.   `sqys` varchar(50) NOT NULL,   
  273.   `shsw` varchar(100) NOT NULL,   
  274.   `qtxx` varchar(1000) NOT NULL,   
  275.   `zxsj` varchar(30) NOT NULL,   
  276.   PRIMARY KEY  (`brdaid`)   
  277. )");   
  278. PREPARE create_stmt from @csql;   
  279. EXECUTE create_stmt;   
  280. /*14 病人营养评测信息表 (BRYYPCINFO)*/   
  281. SET @csql=concat("create table if not exists ",bryypcinfo, " (   
  282.   `bryypcid` int(11) NOT NULL auto_increment,   
  283.   `brdaid` int(4) NOT NULL,   
  284.   `yypcff` varchar(50) NOT NULL,   
  285.   `yypczk` varchar(200) NOT NULL,   
  286.   `zdxx` varchar(200) NOT NULL,   
  287.   `bzxxid` int(4) NOT NULL,   
  288.   `zlxgpj` varchar(1000) NOT NULL,   
  289.   `zxsj` varchar(30) NOT NULL,   
  290.   PRIMARY KEY  (`bryypcid`)   
  291. )");   
  292. PREPARE create_stmt from @csql;   
  293. EXECUTE create_stmt;   
  294. /*15 病人营养评测选项结果信息表 (BRPCJGINFO)*/   
  295. SET @csql=concat("create table if not exists ",brpcjginfo, " (   
  296.   `brpcjgid` int(11) NOT NULL auto_increment,   
  297.   `brdaid` int(4) NOT NULL,   
  298.   `yypcff` varchar(50) NOT NULL,   
  299.   `yypczk` varchar(200) NOT NULL,   
  300.   `zdxx` varchar(200) NOT NULL,   
  301.   `zxsj` varchar(30) NOT NULL,   
  302.   PRIMARY KEY  (`brpcjgid`)   
  303. )");   
  304. PREPARE create_stmt from @csql;   
  305. EXECUTE create_stmt;   
  306. /***********************************表之间的主外键关系*************************************************************/   
  307. /*病人基本档案信息表 (BRDAINFO)与病人一般信息表 (BRYBINFO)的关联关系*/   
  308. /*SET @csql= concat("alter table ",brybinfo," add constraint FKaaa foreign key (brdaid) references  ",brdainfo,"(brdaid)");   
  309. PREPARE create_stmt from @csql;   
  310. EXECUTE create_stmt;   
  311. /*病人基本档案信息表 (BRDAINFO)与病人家庭、起居和饮食习惯信息表 (BRJTQJINFO)的关联关系1111*/   
  312. /*SET @csql= concat("alter table ", brjtqjinfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");   
  313. PREPARE create_stmt from @csql;   
  314. EXECUTE create_stmt;   
  315. /* 病人基本档案信息表 (BRDAINFO)与病人既往病史信息表 (JWBSINFO)的关联关系*/   
  316. /*SET @csql= concat("alter table ", jwbsinfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");   
  317. PREPARE create_stmt from @csql;   
  318. EXECUTE create_stmt;   
  319. /* 病症信息表 (BZXXINFO)与病人既往病史信息表 (JWBSINFO)的关联关系*/   
  320. /*SET @csql= concat("alter table ", jwbsinfo ," add constraint FKaaa foreign key (bzxxid) references ",bzxxinfo,"(bzxxid)");   
  321. PREPARE create_stmt from @csql;   
  322. EXECUTE create_stmt;   
  323. /* 病人基本档案信息表 (BRDAINFO)与病人营养评测信息表 (BRYYPCINFO)的关联关系111*/   
  324. /*SET @csql= concat("alter table ", bryypcinfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");   
  325. PREPARE create_stmt from @csql;   
  326. EXECUTE create_stmt;   
  327. /* 病症信息表 (BZXXINFO)与病人营养评测信息表 (BRYYPCINFO)的关联关系*/   
  328. /*SET @csql= concat("alter table ", bryypcinfo ," add constraint FKaaa foreign key (bzxxid) references ",bzxxinfo,"(bzxxid)");   
  329. PREPARE create_stmt from @csql;   
  330. EXECUTE create_stmt;   
  331. /* 病人基本档案信息表 (BRDAINFO)与病人营养评测选项结果信息表 (BRPCJGINFO)的关联关系*/   
  332. /*SET @csql= concat("alter table ", brpcjginfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");   
  333. PREPARE create_stmt from @csql;   
  334. EXECUTE create_stmt;*/   
  335.     END$$   
  336.   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值