first commit
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
DELIMITER //
|
||||
CREATE OR REPLACE PROCEDURE sys_transfer_rolemenusecurity2owned()
|
||||
BEGIN
|
||||
/*
|
||||
function : 配合 amis 的 transfer 元件, 將 rolemenusecurity 寫入暫存在 owned 欄位
|
||||
description: 本程式基本上只會很低頻率的使用, 因為程式的 SOP 是由 owned -> rolemenusecurity
|
||||
不會逆向執行
|
||||
build date : 2021/10/22
|
||||
|
||||
modify history
|
||||
item who date modify docs
|
||||
==== ========== ========== ================================================
|
||||
1 michael 2021-10-17 新增
|
||||
2 Michael 2025/07/20 改寫為 MariaDB 並最佳化(ChatGPT+DeepSeek)
|
||||
*/
|
||||
DECLARE v_done INT DEFAULT FALSE;
|
||||
DECLARE v_menuid VARCHAR(100);
|
||||
DECLARE v_roleids TEXT;
|
||||
|
||||
-- 宣告游標,按 menuid 分組取得所有 roleid
|
||||
DECLARE cur CURSOR FOR
|
||||
SELECT menuid, GROUP_CONCAT(roleid SEPARATOR ',')
|
||||
FROM sys_rolemenusecurity
|
||||
GROUP BY menuid;
|
||||
|
||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = TRUE;
|
||||
|
||||
OPEN cur;
|
||||
|
||||
read_loop: LOOP
|
||||
FETCH cur INTO v_menuid, v_roleids;
|
||||
IF v_done THEN
|
||||
LEAVE read_loop;
|
||||
END IF;
|
||||
|
||||
-- 更新 owned 欄位
|
||||
UPDATE sys_menutable SET owned = v_roleids WHERE menuid = v_menuid;
|
||||
END LOOP;
|
||||
|
||||
CLOSE cur;
|
||||
END //
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user