Popular Posts
ListSelectionListener & ItemListener import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Toolkit; import java.awt.event.ItemEvent; import java.awt.event.ItemL... netbean shortcut Ctrl + F:尋找 F3:尋找下一個字串 Ctrl + G:跳到第 N 行 Ctrl + H:取代 Tab:增加縮排 Shift + Tab:減少縮排 Ctrl + E:刪除一行 Ctrl + Shift + I:修正 import 項目 Alt + Ent... Capture response output stream using HttpModule using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Web; namespace TestWebA...
Stats
Temp table sample
MySQL
-- Procedure "IsActionAllowed" DDL

CREATE DEFINER=`root`@`%` PROCEDURE `IsActionAllowed`(IN roleid CHAR(36), IN functionid CHAR(36))
BEGIN
    DECLARE rid CHAR(36);
    DECLARE base_role CHAR(36);
    DECLARE exist INT;

    CREATE TEMPORARY TABLE TempTable (RID CHAR(36)) TYPE=INNODB;

    INSERT INTO TempTable VALUES(roleid);
    SET base_role = '';
    SET rid = roleid;

    WHILE base_role IS NOT NULL DO
        IF base_role <> '' THEN
            INSERT INTO TempTable VALUES(base_role);
        END IF;

        SELECT
            tbl_roles.BASE_ON_ROLE INTO base_role
        FROM
            tbl_roles
        WHERE
            tbl_roles.ROLE_ID = rid;

        SET rid = base_role;

    END WHILE;

    SELECT
        COUNT(tbl_role_permission.ROLE_ID) INTO exist
    FROM
        tbl_role_permission
    WHERE
        tbl_role_permission.ROLE_ID IN (SELECT * FROM TempTable)
        AND tbl_role_permission.FUNCTION_ID = functionid;

    DROP TEMPORARY TABLE IF EXISTS TempTable;

    IF exist > 0 THEN
        SELECT true AS Allowed;
    ELSE
        SELECT false AS Allowed;
    END IF;
END;
Procedure tutorial : Stored Procedure Parameters