我需要在名为'queue'的表中插入一些数据,该表是特定日期的患者队列。将插入两个字段数据。两个字段名称为“PatientID”和“访问日期”。表'队列'像
QueueID | PatientID | Visiting_date |
-------------|-------------------|-------------------------|
1 | 4 | Current date |
表:队列
但是插入记录时有两个条件:
条件1:patitentID来自患者表(如下所示) 条件2:如果不存在以防止重复,则将一条记录插入“队列”表中。如果已插入,则不会插入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;
答案 0 :(得分:1)
您可以设置foreign key以确保患者ID存在。
在Queue表中,您可以将patientID设置为unique,这样可以确保您只能在队列表中插入唯一ID。
此外,如果您希望能够插入相同的用户ID但使用不同的日期could specify unique constraint for multiple columns in MySQL。
如果你想用mysql查询解决它,你可以use this question。
答案 1 :(得分:0)
我会使用单独的查询来检查该表中是否存在具有该ID的用户。
SELECT * FROM queue WHERE PatientID = 4;
然后检查该查询的结果,如果它返回一行,这意味着那里有一个用户并且你什么都不做。
如果查询未返回行,则表示您现在可以使用查询来使用户惰性化。喜欢这个
INSERT INTO queue (PatientID, VisitingDate);