first commit
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE get_anytable(
|
||||
IN p_token VARCHAR(100),
|
||||
IN p_tablename VARCHAR(20)
|
||||
)
|
||||
/*
|
||||
萬用取值程式, 主要給 amis picker GET 查詢使用
|
||||
Description: 根據傳入的 token 驗證使用者身份後,返回指定表的數據
|
||||
Build Date : 2023/07/19 (MariaDB 版本)
|
||||
|
||||
Modify History
|
||||
Item Who Date Modify Docs
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2025/07/20 改寫為 MariaDB 並最佳化(ChatGPT+DeepSeek)
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE v_userid VARCHAR(100);
|
||||
DECLARE v_sql TEXT;
|
||||
|
||||
-- 根據傳入的 token 取得 userid
|
||||
SELECT userid INTO v_userid FROM sys_users WHERE token = p_token LIMIT 1;
|
||||
|
||||
-- 設置默認返回值
|
||||
SELECT 0 AS code, 'ok' AS msg;
|
||||
|
||||
-- 構建動態SQL
|
||||
IF v_userid IS NULL OR v_userid = '' THEN
|
||||
-- 無效token時返回空結果
|
||||
SET v_sql = CONCAT('SELECT * FROM ', p_tablename, ' WHERE 1=0');
|
||||
ELSE
|
||||
-- 有效token時返回完整數據
|
||||
SET v_sql = CONCAT('SELECT * FROM ', p_tablename);
|
||||
END IF;
|
||||
|
||||
-- 執行動態SQL
|
||||
SET @dynamic_sql = v_sql;
|
||||
PREPARE stmt FROM @dynamic_sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user