29 lines
742 B
MySQL
29 lines
742 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`specie_IsForbidden`(vItemFk INT, vAddressFk INT)
|
||
|
RETURNS tinyint(1)
|
||
|
NOT DETERMINISTIC
|
||
|
READS SQL DATA
|
||
|
BEGIN
|
||
|
|
||
|
DECLARE vIsForbbiden BOOL;
|
||
|
DECLARE vLeft INT;
|
||
|
|
||
|
SELECT zg.lft INTO vLeft
|
||
|
FROM vn.address a
|
||
|
JOIN vn.zoneGeo zg ON zg.name = a.postalCode
|
||
|
WHERE a.id = vAddressFk;
|
||
|
|
||
|
SELECT sgi.isForbidden INTO vIsForbbiden
|
||
|
FROM vn.specieGeoInvasive sgi
|
||
|
JOIN vn.zoneGeo zg ON zg.id = sgi.zoneGeofk
|
||
|
JOIN vn.itemBotanical ib ON ib.genusFk = sgi.genusFk AND sgi.specieFk IN ('sp.',ib.specieFk)
|
||
|
WHERE vLeft BETWEEN zg.lft AND zg.rgt
|
||
|
AND ib.itemFk = vItemFk
|
||
|
ORDER BY zg.`depth` DESC
|
||
|
LIMIT 1;
|
||
|
|
||
|
RETURN IFNULL(vIsForbbiden, FALSE);
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|