Cod*_*les 2 mysql oracle triggers
我正在尝试将Oracle触发器移植到MySQL.EXCEPTION WHEN OTHERS触发器中有一个声明,虽然我找到了其他所有的等效语句,但我找不到一个.触发器类似于:
IF (yada yada)
THEN
BEGIN
SELECT a
INTO generic_variable1
FROM table
WHERE condition;
SET generic_variable2 = value1;
EXCEPTION WHEN OTHERS --this part needs to be replaced by valid MySQL syntax
SET generic_variable2 = value2;
END;
END IF;
Run Code Online (Sandbox Code Playgroud)
如何将该部分转换为MySQL?
您应该明白,与Oracle相比,MySQL的存储过程/触发器语言非常有限.在移植到MySQL时,许多Oracle用户一遍又一遍地说,"我无法相信MySQL不能做X !!!!"
最接近EXCEPTION的事情可能是DECLARE CONTINUE HANDLER.
示例(未测试):
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @generic_variable2 = 1;
Run Code Online (Sandbox Code Playgroud)
但是你要在可能抛出异常的代码块之前声明,而不是之后.
有关完整文档,请参阅http://dev.mysql.com/doc/refman/5.5/en/declare-handler.html.
| 归档时间: |
|
| 查看次数: |
2564 次 |
| 最近记录: |