如何在MySql的IF ELSE条件中添加多个插入语句

时间:2015-04-13 10:31:02

标签: mysql

我有一个存储过程来根据值插入或更新多个表。

前:

BEGIN
    select count(data) INTO @Update_Flag from tableA WHERE data = 20;
    IF @Update_Flag > 0 THEN
            UPDATE tableA SET data = 10 WHERE data1 = 20;
    ELSE
            INSERT INTO tableA SET  data = 10,data1 = 20;                   
            SELECT LAST_INSERT_ID() INTO @last_id;
            INSERT INTO tableB (data, data1, data2) VALUES('0','1','2');
            SELECT LAST_INSERT_ID() INTO @last_id1;
    END IF;
END$$

有谁能告诉我上面的代码有什么问题。 这里我对tableA的插入工作正常,但下一个插入语句没有被执行。请分享一些解决方案。

1 个答案:

答案 0 :(得分:0)

请试试这个:
您的代码看起来不错。 可能是您创建了一个函数并将其称为过程。

DROP PROCEDURE IF EXISTS sp_in_storedproc;
    CREATE  PROCEDURE `sp_in_storedproc`()
    BEGIN
         select count(data) INTO @Update_Flag from tableA WHERE data = 20;
        IF @Update_Flag > 0 THEN
                UPDATE tableA SET data = 10 WHERE data1 = 20;

        ELSE

                INSERT INTO tableA SET  data = 10,data1 = 20;                   
                SELECT LAST_INSERT_ID() INTO @last_id;
                INSERT INTO tableB (data, data1, data2) VALUES('0','1','2');
                SELECT LAST_INSERT_ID() INTO @last_id1;
        END IF;

    END;

将此过程称为:

Call sp_in_storedproc();