first commit
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
DELIMITER //
|
||||
CREATE OR REPLACE PROCEDURE sys_transfer_owned2userroles(
|
||||
IN p_para_roleid VARCHAR(100)
|
||||
)
|
||||
BEGIN
|
||||
/*
|
||||
function : 配合 amis 的 transfer 元件, 將暫存在 owned 欄位的值, 寫到 userroles
|
||||
description: 目前先配合 omi_api 的存檔後機制(sys_transaction) 執行
|
||||
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_owned TEXT;
|
||||
|
||||
-- 取得 owned 欄位值
|
||||
SELECT owned INTO v_owned FROM sys_roles WHERE roleid = p_para_roleid;
|
||||
|
||||
-- 先刪除現有記錄
|
||||
DELETE FROM sys_userroles WHERE roleid = p_para_roleid;
|
||||
|
||||
-- 使用 STRING_SPLIT 函數插入新記錄
|
||||
IF v_owned IS NOT NULL AND v_owned != '' THEN
|
||||
SET @sql = CONCAT(
|
||||
'INSERT INTO sys_userroles (roleid, userid) ',
|
||||
'SELECT ''', p_para_roleid, ''', value ',
|
||||
'FROM STRING_SPLIT(''', v_owned, ''', '','') ',
|
||||
'WHERE value != '''';'
|
||||
);
|
||||
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
END //
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user