首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在表中有多个外键时插入数据

如何在表中有多个外键时插入数据
EN

Stack Overflow用户
提问于 2015-05-22 18:16:13
回答 2查看 2.1K关注 0票数 0

如何在表中插入多个外键时,指的是包含病人、医生和职员病人的数据库:预约必须与病人一起进行,医生:每次预约都必须有医生

我的问题是,如何在预约和其他相关表格中同时插入数据,比如病人、医生?

请给我举个例子。

代码语言:javascript
运行
复制
CREATE TABLE IF NOT EXISTS `doctor` (
  `doctor_id` int(11) NOT NULL AUTO_INCREMENT,
  `doc_name` varchar(100) NOT NULL,
  `contactNum` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `qulification` varchar(100) NOT NULL,
  `joiningDate` varchar(50) NOT NULL,
  `u_id` int(11) NOT NULL,
  PRIMARY KEY (`doctor_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

Doctor_id博士:1 doctor_name : Ali量化: mbbs

代码语言:javascript
运行
复制
CREATE TABLE IF NOT EXISTS `patient` (
  `patient_id` int(11) NOT NULL AUTO_INCREMENT,
  `Name` varchar(100) NOT NULL,
  `sex` varchar(11) NOT NULL,
  `diagnosis` text NOT NULL,
  `DOB` varchar(100) NOT NULL,
  `address` varchar(200) NOT NULL,
  `Contact_No` varchar(111) NOT NULL,
  PRIMARY KEY (`patient_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

patient

patient_id:1名称: Ahmed性行为:男性诊断:道布测试:2000年6月20日地址:伊斯兰堡

代码语言:javascript
运行
复制
CREATE TABLE appointment 
(
  appointment_id int NOT NULL,
  doctor_id int NOT NULL,
  patient_id int NOT NULL,
  Date int NOT NULL,
  time int,

  PRIMARY KEY (appointment_id),
  CONSTRAINT fk_ap_pa_id FOREIGN KEY (patient_id) REFERENCES patient(patient_id),
  CONSTRAINT fk_ap_do_id FOREIGN KEY (doctor_id) REFERENCES doctor (doctor_id)
);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-22 18:34:50

正如第一个注释中提到的,您需要首先将记录插入到patientdoctor表中,然后才能插入约会记录。如果这些情况需要在单个操作中发生(例如,所有操作都成功或全部失败),那么将insert语句包装到事务中。

我没有一个MySQL实例可以完全检查所需的代码,所以我不能发布它,但请遵循以下过程:

  1. 插入doctor记录
  2. 将使用LAST_INSERT_ID()生成的主键保存到局部变量中
  3. 插入patient记录
  4. 使用与步骤2相同的进程将此主键保存到新变量中。
  5. 现在,您可以在语句中使用这两个变量插入约会记录,以确保满足外键

Again...if --这是一个原子操作,然后将这些语句包装在一个事务中,其中包括您的情况所需的任何验证或错误检查。

关于LAST_INSERT_ID()的更多信息- https://stackoverflow.com/a/17112962/571237

票数 0
EN

Stack Overflow用户

发布于 2015-05-25 12:13:33

为了达到这个目的,您应该使用事务处理,可以阅读更多有关这方面的详细信息。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30403351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档