如果不存在,则插入mysql存储过程

如果不存在,则插入mysql存储过程,mysql,stored-procedures,insert-into,Mysql,Stored Procedures,Insert Into,嘿,伙计们,有人能告诉我我的mysql代码出了什么问题吗 我正在尝试创建一个触发器中调用的存储过程 如果用户在books表中插入新书,则bookqty表在callNumber不存在时插入,并在callNumber存在时更新,但在某些情况下插入查询不起作用 但是更新查询工作正常 先谢谢你 use librarydb; drop procedure if exists intoBooksQty; delimiter $$ create procedure intoBooksQty(in n

嘿,伙计们,有人能告诉我我的mysql代码出了什么问题吗 我正在尝试创建一个触发器中调用的存储过程 如果用户在books表中插入新书,则bookqty表在callNumber不存在时插入,并在callNumber存在时更新,但在某些情况下插入查询不起作用 但是更新查询工作正常 先谢谢你

use librarydb;
drop procedure if exists intoBooksQty;
delimiter $$

    create procedure intoBooksQty(in newcallNumber varchar(10))

        begin
            if not exists (select * from books where callNumber = newcallNumber) then
                insert into librarydb.bookqty(callNumber,bookQty,bookqtyOut) values (newcallNumber, 1,0);
            else
                update bookqty set bookQty = bookQty + 1 where callNumber = newCallNumber;
            end if;
        end$$

delimiter ;

一种选择是进行上插

分隔符//
创建过程'intooksqty'('newcallNumber'VARCHAR(10))
开始
插入'bookqty'('callNumber','bookqty','bookqtyOut`)
选择'newcallNumber',1,0
从`书`
其中`callNumber`=`newcallNumber`
在重复键上更新`bookQty`=`bookQty`+1;
结束//
定界符;

当“它不工作”时,您会收到什么错误消息或行为。关于这个问题,你必须清楚具体——看,这很好,tnx很多,先生,这对我的论文XD很有帮助