Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在存储过程中更新和插入操作_Mysql_Stored Procedures - Fatal编程技术网

Mysql 在存储过程中更新和插入操作

Mysql 在存储过程中更新和插入操作,mysql,stored-procedures,Mysql,Stored Procedures,你能告诉我怎么了吗?我希望有一个可以执行更新和插入操作的存储过程 CREATE PROCEDURE `save_user`(IN `sp_aliasName` VARCHAR(100),IN `sp_password` VARCHAR(100), IN `sp_sex` VARCHAR(100), IN `sp_age` INT(11), IN `sp_userGroup` VARCHAR(100),OUT `sp_number_of_user` INT) BEGIN DECLARE t

你能告诉我怎么了吗?我希望有一个可以执行更新和插入操作的存储过程

CREATE PROCEDURE `save_user`(IN `sp_aliasName` VARCHAR(100),IN `sp_password` VARCHAR(100), IN `sp_sex` VARCHAR(100), IN `sp_age` INT(11), IN `sp_userGroup` VARCHAR(100),OUT `sp_number_of_user` INT)    
BEGIN
DECLARE temp INT;
SELECT COUNT(user_id) INTO sp_number_of_user  FROM user WHERE aliasName = sp_aliasname;
temp := sp_number_of_user;
IF temp > 0
THEN
UPDATE user SET aliasName=sp_aliasName,password=sp_password,sex=sp_sex,age=sp_age,userGroup=sp_userGroup 
WHERE aliasName = sp_aliasname ;
ELSE
INSERT INTO user (aliasName,password,sex,age,userGroup)
values (sp_aliasName,sp_password,sp_sex,sp_age,sp_userGroup);
END IF;
END

我想你的手术应该是这样的-

CREATE PROCEDURE `save_user`(IN `sp_aliasName` VARCHAR(100),IN `sp_password` VARCHAR(100), IN `sp_sex` VARCHAR(100), IN `sp_age` INT(11), IN `sp_userGroup` VARCHAR(100),OUT `sp_number_of_user` INT)    
BEGIN
  DECLARE temp INT;
  SELECT count(user_id) INTO sp_number_of_user FROM user WHERE aliasName = sp_aliasname;
  SET temp := sp_number_of_user;
  IF temp > 0 THEN
    UPDATE user SET aliasName = sp_aliasName, password = sp_password, sex = sp_sex, age = sp_age, userGroup = sp_userGroup
    WHERE aliasName = sp_aliasname;
  ELSE
    INSERT INTO user (aliasName, password, sex, age, userGroup) VALUES (sp_aliasName, sp_password, sp_sex, sp_age, sp_userGroup);
  END IF;
END
我补充说:

  • INT类型到OUT参数
  • 更新语句的WHERE子句(检查此条件)
另外,看看这个命令,它可以做你需要的事情