MySql if else语句,if在该位置无效

标签 mysql

我有一个 vert 表和一个医疗表,它们具有一对多关系,并且 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)
      );

用户可以输入 vert 的详细信息,我想要一个查询来确定;

  • 如果输入的 vert 详细信息已存在,则使用输入的 vert ID 更新 vetID(medical) 中的外键。

  • 否则,如果 vet 不存在,则创建一个新的 vet,并使用新创建的 vetID 更新 vetID(medical) 中的外键。

我有以下查询

IF EXISTS(SELECT * FROM vet WHERE vetPractice = "inputValue") 
    THEN
    UPDATE medical set value vetID = (Select max(vetID) from vet)
    ELSE 
    INSERT INTO vet values (null, "newVetPractice", "NewAddress", "newContactNumber", "NewEmergencyNumber" );
    Then
    update  medical set value vetID = (Select max(vetID) from vet);
END IF;

但是,我不熟悉 mySQL 中的 else 是否是正确的格式,我已经看到了有关存储过程的一些内容。

如有任何帮助,我们将不胜感激。

最佳答案

我不太清楚你的逻辑;但似乎您希望它采用存储过程格式。

CREATE PROCEDURE 'sp_Med' (IN 'in_vetPractice' VARCHAR(35))  
LANGUAGE SQL  
NOT DETERMINISTIC  
CONTAINS SQL  
SQL SECURITY DEFINER  
BEGIN
    DECLARE ckExists int;  
    SET ckExists = 0;  

    SELECT count(*) INTO ckExists from vet WHERE vetPractice = in_vetPractice;   

    IF (ckExists > 0) THEN 
        UPDATE medical SET vetID = (Select max(vetID) FROM vet WHERE vetPractice = in_vetPractice) 
    ELSE 
        INSERT INTO vet VALUES (NULL, "newVetPractice", "NewAddress", "newContactNumber", "NewEmergencyNumber");
        UPDATE medical SET vetID = LAST_INSERT_ID();    
    END IF; 
END;   

像这样执行

CALL sp_Med('newPractice')

关于MySql if else语句,if在该位置无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31431358/

相关文章:

java - 没有找到适合 dbc :mysql://localhost:8080/kholofedb 的驱动程序

php - 删除两个表中的数据

MySQL外键约束、级联删除

mysql - 自连接从事件表中提取相关记录?

c# - 从元组到 ICollection 的映射

mysql - Rails 多列 IN 子句

MySQL - 持久连接(或)休眠连接

带有 RAND() 子查询条件的 MySQL 查询

mysql - 连接表上的 Rails SQL 查询

php - 检索模板 joomla 2.5 中的模块参数设置