我有一个包含列的表员工:id,name,department,salary。 我想创建一个程序,增加特定部门所有员工的工资,如果工资低于500则运行程序,否则返回保存点。 我不知道怎么写异常
CREATE PROCEDURE `procedure1` (IN dep1 INT(11), IN sal1 INT(11))
BEGIN
SAVEPOINT point1;
UPDATE employee SET salary=salary+sal1
WHERE department=dep1;
EXCEPTION
WHEN salary>500 THEN
ROLLBACK TO point1;
END
答案 0 :(得分:2)
也许您需要检查自己的观点,因为您可以添加另一个WHERE子句,以便仅更新小于或等于500的工资,例如:
UPDATE employee SET salary=salary+sal1
WHERE department=dep1
AND salary <= 500;
有了这个,我认为你不需要SAVEPOINT,但是在这里找到如何使用它:SAVEPOINT
希望这有帮助!!。
答案 1 :(得分:0)
CREATE OR REPLACE PROCEDURE procedure1 (dep1 IN NUMBER, sal1 IN NUMBER)
BEGIN
UPDATE employee SET salary=salary+sal1
WHERE department= dep1 and
salary <= 500;
COMMIT;
END;