diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index a2d93d3c4d3d11186a1b877b59b1703a32555d21..aa24f2c2bc111f0bcde7a5d41ce18186df239049 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -129,10 +129,23 @@ CREATE FUNCTION `SetBitmaskByPagename` ( `Pagename` TEXT CHARSET utf8, ) RETURNS int(11) NO SQL BEGIN - UPDATE `page_access` - SET page_access.Bitmask = Mask + DECLARE checker INT; + SELECT page_access.ID + INTO checker + FROM `page_access` WHERE page_access.Pagename = Pagename LIMIT 1; + + IF checker > 0 THEN + UPDATE `page_access` + SET page_access.Bitmask = Mask + WHERE page_access.Pagename = Pagename + LIMIT 1; + ELSE + INSERT INTO `page_access` (page_access.Pagename, page_access.Bitmask) + VALUES (Pagename, Mask); + + END IF; RETURN 0; END //