想更新表role 把grade属性+1,更新那些name在top表中按grade排列前paramLimit名的人 在top和role中都有名为name的列DROP PROCEDURE IF EXISTS UpdateGrade;
CREATE PROCEDURE UpdateGrade(
IN paramGrade INT,
IN paramLimit INT
)
BEGIN SET @result = 0;
UPDATE role SET
grade=grade+1
WHERE name is in(SELECT name from top where grade = paramGrade orderby grade limit paramLimit); SET @result = paramGrade;
END
CREATE PROCEDURE UpdateGrade(
IN paramGrade INT,
IN paramLimit INT
)
BEGIN SET @result = 0;
UPDATE role SET
grade=grade+1
WHERE name is in(SELECT name from top where grade = paramGrade orderby grade limit paramLimit); SET @result = paramGrade;
END
prepare stmt from @sql;
execute stmt;update role A,temp_top B
set A.grade = A.grade + 1
where A.name = B.namedrop table temp_topend
还有这里为什么要这么写 而不是直接写creat table。我不太了解数据库
SET @prepareStatement = CONCAT(.....);
PREPARE stmt FROM @prepareStatement;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET @prepareStatement1 = CONCAT(.....);
PREPARE stmt FROM @prepareStatement1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END可以这样写吗 如果我想排两个序的话 还是必须要放在两个存储过程里