`
qq355667166
  • 浏览: 35556 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
DELIMITER $$

DROP PROCEDURE IF EXISTS `mytest`.`newtest`$$

CREATE PROCEDURE `newtest`(in bzxxinfo varchar(20),in swxxinfo varchar(20),in swyycfinfo varchar(20),
  in swajsinfo varchar(20),in swzfsinfo varchar(20),in swxtsczsinfo varchar(20),in cksrlinfo varchar(20),
  in shjclxinfo varchar(20),in shjcxminfo varchar(20),in brdainfo varchar(20),
  in brybinfo varchar(20),in brjtqjinfo varchar(20),in jwbsinfo varchar(20),
  in bryypcinfo varchar(20),in brpcjginfo varchar(20))
BEGIN
/*1、病症信息表 (BZXXINFO)*/
SET @csql=concat("create table if not exists ",bzxxinfo, " (bzxxid int(11) NOT NULL auto_increment,
  bzxxfid int(4) NOT NULL default '0',
  bzxxmc varchar(100) NOT NULL default '',
  bzxxpym varchar(100) NOT NULL default '',
  bzms text,
  bzbj varchar(1) NOT NULL default '',
  PRIMARY KEY  (`bzxxid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*2、食物信息表 (SWXXINFO)*/
SET @csql=concat("create table if not exists ",swxxinfo, " ( swxxid int(11) NOT NULL auto_increment,
  swxxfid int(4) NOT NULL default '-100',
  swxxmc varchar(100) NOT NULL default '',
  swxxpym varchar(100) NOT NULL default '',
  lxbj varchar(1) NOT NULL default '',
  swxxbz varchar(300) default NULL,
  PRIMARY KEY  (`swxxid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*3、食物一般营养成份信息表 (SWYYCFINFO)*/
SET @csql=concat("create table if not exists ",swyycfinfo, " ( swxxybid int(4) NOT NULL default '0',
  edible int(4) default NULL,
  water float default NULL,
  energy_kcal float default NULL,
  energy_kj float default NULL,
  protein float default NULL,
  fat float default NULL,
  cho float default NULL,
  dietary_fiber_t float default NULL,
  dietary_fiber_s float default NULL,
  dietary_fiber_i float default NULL,
  cholesterol float default NULL,
  ash float default NULL,
  vita float default NULL,
  carotene float default NULL,
  retinol float default NULL,
  thiamin float default NULL,
  riboflavin float default NULL,
  vitb6 float default NULL,
  vitb12 float default NULL,
  pa float(9,2) default NULL,
  folate float default NULL,
  niacin float default NULL,
  vitc float default NULL,
  vitd float default NULL,
  vite_t float default NULL,
  vite_ate float default NULL,
  vitk float default NULL,
  ca float default NULL,
  p float default NULL,
  k float default NULL,
  na float default NULL,
  mg float default NULL,
  fe float default NULL,
  zn float default NULL,
  se float default NULL,
  cu float default NULL,
  mn float default NULL,
  i float default NULL,
  f float(9,2) default NULL,
  cr float(9,2) default NULL,
  mo float(9,2) default NULL,
  choline float(9,2) default NULL,
  biotin float(9,2) default NULL,
  yycfbz varchar(300) default NULL,
  PRIMARY KEY  (`swxxybid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*4、食物氨基酸含量信息表 (SWAJSINFO)*/
SET @csql=concat("create table if not exists ",swajsinfo, " (swxxajsid int(11) NOT NULL default '0',
  water_a float default NULL,
  protein_a float default NULL,
  iie float default NULL,
  leu float default NULL,
  lys float default NULL,
  saa float default NULL,
  met float default NULL,
  cys float default NULL,
  aaa float default NULL,
  phe float default NULL,
  tyr float default NULL,
  thr float default NULL,
  trp float default NULL,
  val float default NULL,
  arg float default NULL,
  his float default NULL,
  ala float default NULL,
  asp float default NULL,
  glu float default NULL,
  gly float default NULL,
  pro float default NULL,
  ser float default NULL,
  swajsbz varchar(300) default NULL,
  PRIMARY KEY  (`swxxajsid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*5、食物脂肪酸含量信息表 (SWZFSINFO)*/
SET @csql=concat("create table if not exists ",swzfsinfo, " (swxxzfsid int(4) NOT NULL default '0',
  fatt float default NULL,
  sfa float default NULL,
  mufa float default NULL,
  pufa float default NULL,
  un_k float default NULL,
  swzfsbz varchar(300) default NULL,
  PRIMARY KEY  (`swxxzfsid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*6、食物血糖生成指数信息表 (SWXTSCZSINFO)*/
SET @csql=concat("create table if not exists ",swxtsczsinfo, " ( swxxxtid int(4) NOT NULL default '0',
  gi float default NULL,
  sjly varchar(1) default NULL,
  swqthlbz varchar(300) default NULL,
  PRIMARY KEY  (`swxxxtid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*7、居民膳食营养素参考摄入量信息表 (CKSRLINFO)*/
SET @csql=concat("create table if not exists ",cksrlinfo, " (cksrlid int(11) NOT NULL auto_increment,
  dris_lx varchar(1) NOT NULL,
  nlfw varchar(10) NOT NULL,
  xbid varchar(1) NOT NULL,
  sjly varchar(1) NOT NULL,
  tlhdspid varchar(1) NOT NULL,
  energymj decimal(9,2) default NULL,
  energykcal decimal(9,2) default NULL,
  protein decimal(9,2) default NULL,
  fat decimal(9,2) default NULL,
  ca decimal(9,2) default NULL,
  p decimal(9,2) default NULL,
  k decimal(9,2) default NULL,
  na decimal(9,2) default NULL,
  mg decimal(9,2) default NULL,
  fe decimal(9,2) default NULL,
  i decimal(9,2) default NULL,
  zn decimal(9,2) default NULL,
  se decimal(9,2) default NULL,
  cu decimal(9,2) default NULL,
  f decimal(9,2) default NULL,
  cr decimal(9,2) default NULL,
  mn decimal(9,2) default NULL,
  mo decimal(9,2) default NULL,
  vita decimal(9,2) default NULL,
  vitd decimal(9,2) default NULL,
  vite decimal(9,2) default NULL,
  vitb1 decimal(9,2) default NULL,
  vitb2 decimal(9,2) default NULL,
  vitb6 decimal(9,2) default NULL,
  vitb12 decimal(9,2) default NULL,
  vitc decimal(9,2) default NULL,
  pa decimal(9,2) default NULL,
  fa decimal(9,2) default NULL,
  niacin decimal(9,2) default NULL,
  choline decimal(9,2) default NULL,
  biotin decimal(9,2) default NULL,
  cksrlbz varchar(300) default NULL,
  PRIMARY KEY  (`cksrlid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*8、生化检查类型信息表 (SHJCLXINFO)*/
SET @csql=concat("create table if not exists ",shjclxinfo, " (shjclxid int(11) NOT NULL auto_increment,
  shjclxbh int(4) NOT NULL default '0',
  shjclxmc varchar(100) NOT NULL default '',
  shjclxpym varchar(100) NOT NULL default '',
  PRIMARY KEY  (`shjclxid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*9、生化检查项目信息表 (SHJCXMINFO)*/
SET @csql=concat("create table if not exists ",shjcxminfo, " ( shjcxmid int(11) NOT NULL auto_increment,
  shjclxid int(4) NOT NULL default '0',
  shjcxmbh int(4) NOT NULL default '0',
  shjcxmmc varchar(100) NOT NULL default '',
  shjcxmpym varchar(100) NOT NULL default '',
  PRIMARY KEY  (`shjcxmid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*10.病人基本档案信息表 (BRDAINFO)*/
SET @csql=concat("create table if not exists ",brdainfo, " ( brdaid int(11) NOT NULL auto_increment,
brdabh varchar(20) NOT NULL,
brxm varchar(50) NOT NULL,
pym varchar(50) NOT NULL,
xbid varchar(1) NOT NULL,
csrg varchar(10) NOT NULL,
nl varchar(3) NOT NULL, 
brlx varchar(2) NOT NULL, 
brsg varchar(3) NOT NULL,
brtz varchar(3) NOT NULL,
 tzzs varchar(10) NOT NULL,
fpcdid varchar(1) NOT NULL,
tlhdid varchar(1) NOT NULL,
czrq varchar(10) NOT NULL,
zyzdid int(4) NOT NULL,
zljg varchar(2000) NOT NULL,
ysxg varchar(50) NOT NULL,
yzbm varchar(10) NOT NULL,
lxdz varchar(100) NOT NULL,
lxdh varchar(30) NOT NULL,
zxsj varchar(30) NOT NULL,  
PRIMARY KEY  (`brdaid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*11.病人一般信息表 (BRYBINFO) */
SET @csql=concat("create table if not exists ",brybinfo, " (
  brybid int(11) NOT NULL auto_increment,
  brdaid int(4) NOT NULL,
  mrwy varchar(10) NOT NULL,
  cstz varchar(3) NOT NULL,
  tl varchar(3) NOT NULL,
  cjpm varchar(3) NOT NULL,
  kds varchar(2) NOT NULL,
  hwhd varchar(2) NOT NULL,
  pftx varchar(10) NOT NULL,
  pzhd varchar(3) NOT NULL,
  sbzw varchar(3) NOT NULL,
  yw varchar(3) NOT NULL,
  tw varchar(3) NOT NULL,
  hd varchar(10) NOT NULL,
  dh varchar(10) NOT NULL,
  db varchar(50) NOT NULL,
  fat varchar(10) NOT NULL,
  fatb varchar(10) NOT NULL,
  smm varchar(50) NOT NULL,
  obb varchar(10) NOT NULL,
  bmr varchar(50) NOT NULL,
  scnl varchar(10) NOT NULL,
  sczf varchar(10) NOT NULL,
  scsf varchar(10) NOT NULL,
  zxsj varchar(30) NOT NULL,
  PRIMARY KEY  (`brybid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*12 病人既往病史信息表 (JWBSINFO) */
SET @csql=concat("create table if not exists ",jwbsinfo, " (
  `jwbsid` int(11) NOT NULL auto_increment,
  `brdaid` int(4) NOT NULL,
  `bzxxid` int(4) NOT NULL,
  `zxsj` varchar(30) NOT NULL,
  PRIMARY KEY  (`jwbsid`))");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*13.病人家庭、起居和饮食习惯信息表 (BRJTQJINFO)*/
SET @csql=concat("create table if not exists ",brjtqjinfo, " (
  `brdaid` varchar(4) NOT NULL,
  `jtptz` varchar(20) NOT NULL,
  `yxhl` varchar(10) NOT NULL,
  `ztxh` varchar(10) NOT NULL,
  `wcyc` varchar(10) NOT NULL,
  `zccs` varchar(10) NOT NULL,
  `xccs` varchar(10) NOT NULL,
  `pjxf` varchar(10) NOT NULL,
  `jtsr` varchar(10) NOT NULL,
  `fqnl` varchar(3) NOT NULL,
  `fqsg` varchar(3) NOT NULL,
  `fqtz` varchar(3) NOT NULL,
  `fqbmi` varchar(10) NOT NULL,
  `fqjb` varchar(50) NOT NULL,
  `mqnl` varchar(3) NOT NULL,
  `mqsg` varchar(3) NOT NULL,
  `mqtz` varchar(3) NOT NULL,
  `mqbmi` varchar(10) NOT NULL,
  `mqjb` varchar(50) NOT NULL,
  `jcsd` varchar(10) NOT NULL,
  `sqys` varchar(50) NOT NULL,
  `shsw` varchar(100) NOT NULL,
  `qtxx` varchar(1000) NOT NULL,
  `zxsj` varchar(30) NOT NULL,
  PRIMARY KEY  (`brdaid`)
)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*14 病人营养评测信息表 (BRYYPCINFO)*/
SET @csql=concat("create table if not exists ",bryypcinfo, " (
  `bryypcid` int(11) NOT NULL auto_increment,
  `brdaid` int(4) NOT NULL,
  `yypcff` varchar(50) NOT NULL,
  `yypczk` varchar(200) NOT NULL,
  `zdxx` varchar(200) NOT NULL,
  `bzxxid` int(4) NOT NULL,
  `zlxgpj` varchar(1000) NOT NULL,
  `zxsj` varchar(30) NOT NULL,
  PRIMARY KEY  (`bryypcid`)
)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*15 病人营养评测选项结果信息表 (BRPCJGINFO)*/
SET @csql=concat("create table if not exists ",brpcjginfo, " (
  `brpcjgid` int(11) NOT NULL auto_increment,
  `brdaid` int(4) NOT NULL,
  `yypcff` varchar(50) NOT NULL,
  `yypczk` varchar(200) NOT NULL,
  `zdxx` varchar(200) NOT NULL,
  `zxsj` varchar(30) NOT NULL,
  PRIMARY KEY  (`brpcjgid`)
)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/***********************************表之间的主外键关系*************************************************************/
/*病人基本档案信息表 (BRDAINFO)与病人一般信息表 (BRYBINFO)的关联关系*/
/*SET @csql= concat("alter table ",brybinfo," add constraint FKaaa foreign key (brdaid) references  ",brdainfo,"(brdaid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/*病人基本档案信息表 (BRDAINFO)与病人家庭、起居和饮食习惯信息表 (BRJTQJINFO)的关联关系1111*/
/*SET @csql= concat("alter table ", brjtqjinfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/* 病人基本档案信息表 (BRDAINFO)与病人既往病史信息表 (JWBSINFO)的关联关系*/
/*SET @csql= concat("alter table ", jwbsinfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/* 病症信息表 (BZXXINFO)与病人既往病史信息表 (JWBSINFO)的关联关系*/
/*SET @csql= concat("alter table ", jwbsinfo ," add constraint FKaaa foreign key (bzxxid) references ",bzxxinfo,"(bzxxid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/* 病人基本档案信息表 (BRDAINFO)与病人营养评测信息表 (BRYYPCINFO)的关联关系111*/
/*SET @csql= concat("alter table ", bryypcinfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/* 病症信息表 (BZXXINFO)与病人营养评测信息表 (BRYYPCINFO)的关联关系*/
/*SET @csql= concat("alter table ", bryypcinfo ," add constraint FKaaa foreign key (bzxxid) references ",bzxxinfo,"(bzxxid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;
/* 病人基本档案信息表 (BRDAINFO)与病人营养评测选项结果信息表 (BRPCJGINFO)的关联关系*/
/*SET @csql= concat("alter table ", brpcjginfo ," add constraint FKaaa foreign key (brdaid) references ",brdainfo,"(brdaid)");
PREPARE create_stmt from @csql;
EXECUTE create_stmt;*/
    END$$

DELIMITER ;

 

0
0
分享到:
评论

相关推荐

    SQLServer生成所有外键存储过程

    在SQL Server中,创建自定义的存储过程可以解决特定的问题,比如批量修改表结构,包括将varchar类型转换为Nvarchar类型,以支持Unicode字符。 描述中提到的"SQLServer生成所有外键存储过程"是一个专门设计的存储...

    用触发器实现SQLite的外键约束

    通过上述方法,我们可以有效地在SQLite数据库中实现外键约束的功能,从而确保数据的一致性和完整性。这种方法虽然比内置的外键支持稍微复杂一些,但在SQLite这样的轻量级数据库系统中非常实用。需要注意的是,由于...

    数据主键和外键的错误总结

    - **解决方法**:确保外键和主键的数据类型完全一致。 5. **重载的外键**:当一张表通过多个字段同时指向另一张表时,这种设计被称为重载的外键。这增加了数据维护的复杂度。 - **解决方法**:尽量减少重载的...

    用存储过程写的主外键编号产生

    根据给定的文件信息,我们可以总结出以下关于“用存储过程写的主外键编号产生”的相关知识点: ### 1. 存储过程简介 存储过程是SQL语句和可选控制流语句的预编译集合,存储在数据库中,通过一个名称来调用它。它们...

    创建数据库和表.pptx

    创建表需要了解表的结构、字段类型、主键和外键等知识点。 三、用户、角色和架构 SQL Server 2008拥有强大的安全机制,而这主要是通过用户、角色和架构来实现的。服务器登录名属于服务器角色映射,数据库用户属于...

    禁用启用所有外键约束.tst

    在Oracle数据库中,可以使用以下PL/SQL过程实现: 1. **禁用外键约束**: ```sql EXECUTE IMMEDIATE 'ALTER SESSION SET CONSTRAINTS = DEFERRED'; ``` 这会延迟所有外键约束的检查到事务结束时。 2. **启用...

    药品存销信息管理系统数据库设计与实现(包括需求分析,数据库设计,数据表、视图、存储过程等)

    总的来说,药品存销信息管理系统是一个综合性的数据库应用实例,涵盖了从需求分析到数据库设计的全过程,涉及到数据表、视图、存储过程等数据库核心技术,以及MySQL的使用。通过这样的系统,用户可以高效地管理药品...

    数据库原理及应用实验一(创建数据库和表)

    - **创建数据表**:使用图形界面和SQL语句创建包含主键、外键和check约束的数据表。 - **表数据操作**:通过图形界面和SQL语句对表中的数据进行添加、修改和删除操作。 #### 实验具体步骤 1. **创建数据库Student_...

    数据库建表-建约束-建外键.doc

    数据库建表、约束和外键实践 ...我们通过实践例子,了解了如何创建表结构、添加约束和外键,如何使用Identity和TimeStamp来记录数据的修改时间和自动递增列。这些知识点对于数据库设计和开发都是非常重要的。

    c#自动生成表与存储过程

    - **ADO.NET**:C#通常使用ADO.NET库与数据库进行交互,包括创建表和调用存储过程。 - **Entity Framework**:作为ORM(对象关系映射)框架,Entity Framework能简化数据库操作,包括自动创建数据库结构和存储过程...

    火车订票系统课程设计脚本SQLserver数据库建表语句源代码Javaweb界面+存储过程等功能源代码.zip

    在SQL Server中,建表语句用于创建数据库中的表格结构,定义字段、数据类型、主键、外键等关系。这通常涉及到需求分析,理解火车订票系统的业务逻辑,如用户信息表、车次信息表、订单表、座位表等。每个表都有其特定...

    批量创建表

    总之,批量创建表是数据库管理中的一个重要任务,通过存储过程可以实现自动化和高效化。理解这个过程不仅可以帮助你优化数据库维护,还能提升你对数据库管理系统的理解。在Oracle环境下,掌握如何编写和调用存储过程...

    oracle 数据库 自动创建表

    总的来说,自动创建Oracle数据库表是通过编程语言结合数据库接口实现的,它涉及到了文件解析、SQL语句构造和数据库操作等多个技术领域。这个过程不仅可以提高开发效率,也是数据库管理和自动化运维的重要组成部分。

    数据库创建表模型工具数据库创建表模型工具数据库创建表模型工具

    总的来说,数据库创建表模型工具是数据库设计过程中的得力助手,它们提供了一种直观、高效的方式来规划和实现数据库结构。无论是小型项目还是大型企业级系统,利用这样的工具都能提升数据库设计的质量和效率。在使用...

    hibernate外键实现一对一双向关联关系源码

    本主题将深入探讨如何使用Hibernate实现一对一双向关联关系,并通过源码解析这一过程。 一对一双向关联关系指的是两个实体类之间存在一对一的关系,且在各自的类中都可以直接访问对方。这种关联可以通过注解或XML...

    MSSQL用户表、视图、存储过程转SQL

    转换用户表为SQL意味着你需要生成创建这些表的DDL(Data Definition Language)语句,包括表名、字段名、数据类型、主键约束、外键约束等。这可以通过MSSQL的系统存储过程如`sp_help`或工具如SQL Server Management ...

    南邮数据库第二次实验- 约束、视图、索引与存储过程

    实验内容主要包括产品数据库的创建、表的建立、数据导入、完整性约束的添加,以及视图和存储过程的创建。 首先,创建了一个名为“products”的产品数据库。通过执行`CREATE DATABASE products;`语句,我们可以在...

    数据库系统原理实验.docx

    `DEPT`表的`DNAME`必须唯一,`SSEX`只能为"男"或"女",`GRADE`在0-100之间,`STUDENT`表中如果性别为"男",名字不能以"Ms."开头,所有这些可以通过`NOT NULL`、`UNIQUE`和`CHECK`短语实现。 4. **CONSTRAINT完整性...

Global site tag (gtag.js) - Google Analytics