我需要在名为“queue”的表中插入一些数据,该表是特定日期的患者队列。将插入两个字段数据。两个字段名称是“PatientID”和“访问日期”。表‘队列’如
QueueID | PatientID | Visiting_date |
-------------|-------------------|-------------------------|
1 | 4 | Current date |
表:队列
但是插入记录时有两个条件:
条件 1:patitentID 来自 patient 表(如下所示) 条件2:如果一条记录不存在,将插入到'queue'表中以防止重复。即PatientID = 4如果已经插入则不会插入。
-------------|-----------------|------------------|
patitentID | Patient Name | Contact no |
-------------|-----------------|------------------|
4 | David | 01245785874 |
表:病人
我的 SQL 是:(它不起作用)
INSERT INTO `queue`(`patientID`, `Visiting_date`)
SELECT patient.`patientID`,’CURDATE()’ FROM `patient`
WHERE NOT EXISTS (
SELECT `patientID`, `visiting_date`FROM `queue`
WHERE `patientID` = '4' AND `visting_date`=CURDATE()
) LIMIT 1;
最佳答案
你可以设置一个 foreign key以确保患者 ID 存在。
在队列表中,您可以将 patientID 设置为 unique ,这确保您只能在队列表中插入唯一 ID。
此外,如果您希望能够插入相同的用户 ID 但日期不同,您可以 could specify unique constraint for multiple columns in MySQL .
如果你只想用 mysql 查询来解决它,你可以 use this question .
关于MySQL : insert into select && where not exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39719112/