我在使用PhpMyAdmin時遇到困難。 我的表是:PhpMyAdmin - err 1064 - 在函數中設置變量
material(id_item, id_collection,...)
primarey_key(id_item, id_collection).
我想要的功能,以防止環路無環圖數據庫。所以我想強制id_collection> id_item新的id_collection。
我的功能(我已在SQL選項卡中設置//
):
//
CREATE or REPLACE function collections_prevent_cycle()
BEGIN
DECLARE max_of_both SMALLINT;
SET max_of_both := (MAX(GREATEST(id_item, id_collection)) FROM material);
IF NOT EXISTS(SELECT id_collection FROM material where id_collection = NEW.id_collection) THEN
IF (NEW.id_item >= max_of_both) THEN SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'You may not insert items that doesnt exist';
ELSEIF(NEW.id_collection <> max_of_both + 1) THEN SIGNAL'45000'
SET MESSAGE_TEXT = 'You may not insert non stable id_collection';
END IF;
END IF;
RETURN 0;
END;
//
#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的使用權語法手冊 附近「功能collections_prevent_cycle()返回整數BEGIN DECLARE max_of_b」在行1
我與申報搞亂,但不能得到擺脫 - 任何人都可以幫助我嗎?
固定我定界符第一PBM有:
安裝的Adminer - 似乎是DELIMITER&declare pbm :( – Falt4rm