MySQL如果存在更新否则创建新的
我有一个1对多关系的vet表和medical表,ID是自动递增的MySQL如果存在更新否则创建新的,mysql,Mysql,我有一个1对多关系的vet表和medical表,ID是自动递增的 CREATE TABLE vet( vetID INT NOT NULL AUTO_INCREMENT, vetPractice varchar(35), Address varchar(150), contactNumber varchar (15), PRIMARY KEY (VetID) ); CREATE TABLE medical(
CREATE TABLE vet(
vetID INT NOT NULL AUTO_INCREMENT,
vetPractice varchar(35),
Address varchar(150),
contactNumber varchar (15),
PRIMARY KEY (VetID)
);
CREATE TABLE medical(
medicalID INT NOT NULL AUTO_INCREMENT,
medication VARCHAR (200),
PRIMARY KEY (medicalID),
FOREIGN KEY (vetID) REFERENCES vet(vetID)
);
用户可以输入兽医的详细信息,我想通过查询来确定
- 如果输入的vet详细信息已经存在,则使用输入的vetID更新vetID(医疗)中的外键
- 否则,如果vet不存在,请创建新的vet,并使用新创建的vetID更新vetID(医疗)中的外键
INSERT INTO table (x,x,x) VALUES (x,x,x)
ON DUPLICATE KEY UPDATE x=x+x;
您必须执行“选择”查询以确定是否存在
Select medicalID from medical where medication=?
这应该在不同的查询中执行,因为更新时,您需要使用服务器语言查看结果是否返回结果。然后使用“if”语句确定您的例程。
希望这有帮助 问题是…?到目前为止,您有什么SQL来尝试此操作?您的外键不完整
medical
没有vetID
字段来引用vet
表。更相关的注意事项是,您需要一个合适的搜索算法来检查vet是否存在。由于用户不太可能知道vetID,也不太可能键入完全相同的vetPractice名称,因此重复键上的
对您也没有多大帮助。你可以尝试使用联系人号码
,但很多办公室都有多部电话;不同的用户可能知道同一实践的不同数字。