DELIMITER $$
DROP PROCEDURE IF EXISTS `insert_or_update`$$
CREATE PROCEDURE insert_or_update(
IN username VARCHAR(70),
IN score INT,
IN titlein VARCHAR(70)
)
begin
IF EXISTS (SELECT * FROM two_player WHERE title=titlein and user1!=username and user2='') THEN
UPDATE two_player SET score12=score , user2=username WHERE title=titlein and user1!=username and user2='' limit 1;
ELSE
INSERT INTO two_player (user1,score11,title) values (username, score, titlein);
END if;
END$$
DELIMITER ;
call insert_or_update('sara',20,'math');
我创建了一个程序。但是,当我尝试调用它时,我收到此错误消息:
#1305 - PROCEDURE u941310304_menu.insert_or_update does not exist
出了什么问题?
答案 0 :(得分:1)
我测试了你的代码并调用了程序。
您的默认数据库是u941310304_menu
,您似乎正在另一个数据库中创建该过程。您可以创建指定目标数据库的过程。
DELIMITER $$
DROP PROCEDURE IF EXISTS `u941310304_menu`.`insert_or_update`$$
CREATE PROCEDURE `u941310304_menu`.insert_or_update(
[...]
如果该过程在另一个数据库中,则必须将db名称指定为前缀:
call `another_database`.insert_or_update('sara',20,'math');