Joh*_*son 1 mysql triggers loops
我有一个包含临时表的触发器。现在我希望循环遍历临时表并在每一行上执行一些操作。有一些简单的方法可以做到这一点吗?我用谷歌搜索过,但对于这样一个简单的任务来说,一切似乎都过于复杂。
CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
FOR EACH ROW
BEGIN
IF NEW.col <> OLD.col THEN
DROP TEMPORARY TABLE IF EXISTS tmpTable;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpTable AS (my select statement);
--For each row in tempTable--
Do something
--
DROP TEMPORARY TABLE tmpTable;
END IF;
END
Run Code Online (Sandbox Code Playgroud)
要有行号你可以这样做:
DROP TEMPORARY TABLE IF EXISTS tmpTable;
CREATE TEMPORARY TABLE IF NOT EXISTS tmpTable AS (
SELECT l.*,
@curRow := @curRow + 1 AS row_no
FROM XXX_TABLE l
JOIN (SELECT @curRow := 0) r);
Run Code Online (Sandbox Code Playgroud)
使用它你可以使用WHILE循环:
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
SELECT COUNT(*) FROM tmpTable INTO n;
SET i=0;
WHILE i<n DO
SET i = i + 1;
-- do sth WHERE row_no=i;
END WHILE;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5105 次 |
| 最近记录: |