gpt4 book ai didi

mysql - 表中有多个外键时如何插入数据

转载 作者:行者123 更新时间:2023-11-29 22:24:26 25 4
gpt4 key购买 nike

当表中有多个外键时如何插入数据指包含患者、医生和工作人员的数据库患者:预约必须与患者一起进行医生:每次预约都必须有医生

我的问题如何同时在预约和另一个相关表(如患者、医生)中插入数据?

请举个例子?

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 ;

医生医生 ID:1医生姓名:阿里资格:mbbs

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

患者 ID:1姓名:艾哈迈德·祖拜尔性别男诊断:测试出生日期 : 20/6/2000地址:伊斯兰堡

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)
);

最佳答案

正如第一条评论中提到的,您需要首先将记录插入到 patentdoctor 表中,然后才能插入您的预约记录。如果这些需要在单个操作中发生(例如,全部成功或全部失败),则将插入语句包装在事务中。

我没有可用的 MySQL 实例来完全审查所需的代码,因此我无法发布它,但请遵循以下过程:

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

再次...如果这是一个原子操作,则将这些语句包装在一个事务中,其中包括您的情况所需的任何验证或错误检查。

有关 LAST_INSERT_ID() 的更多信息请参见此处 - https://stackoverflow.com/a/17112962/571237

关于mysql - 表中有多个外键时如何插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30403351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com