MySQL如果存在更新否则创建新的

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(

我有一个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(
      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(医疗)中的外键


您想在MySql中进行升级。我认为这会有所帮助

例如:

 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名称,因此重复键上的
对您也没有多大帮助。你可以尝试使用
联系人号码
,但很多办公室都有多部电话;不同的用户可能知道同一实践的不同数字。