Видимо это случайно произошло у Алексея (я в основной базе однозначно ничего не трогал, кроме снятия дампов), но сегодня я обнаружил такую же ошибку и на основном сервере, причём судя по логам ошибки начали идти после его вчерашнего вмешательства. Винить никого не собираюсь, но необходимо вернуть основной сервер в нормальную работу. Помогите пожалуйста. Пишу здесь. так как база smk30 "принадлежит" PEGAS, значит его разработчикам проще будет разобраться с ним.
Ошибки звучит примерно так:
Попытка добавить командойSQL: error 1305('FUNCTION smk30.UPDCNTR does not exist') on query 'UPDATE `mdk_m1m_line` SET `upd_counter`=UPDCNTR() WHERE `domain_id`=10 AND `id`='D:10 A:4.8 T1:23.0 Inv:4809 T2:1.0''
Код: Выделить всё
CREATE FUNCTION `smk30`.`UPDCNTR`() RETURNS bigint(20)
BEGIN
DECLARE curr_max BIGINT;
SELECT IFNULL(MAX(upd_counter), 0) + 1 INTO curr_max FROM `smk30`.`locals`;
UPDATE `smk30`.`locals` SET upd_counter=curr_max;
IF ROW_COUNT()=0 THEN INSERT INTO `smk30`.`locals` VALUES(curr_max);
END IF;
RETURN curr_max;
END;
Версия MySQL на основном сервере - рекомендованная вамиmysql> CREATE FUNCTION `smk30`.`UPDCNTR`() RETURNS bigint(20)
-> BEGIN
-> DECLARE curr_max BIGINT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near '' at
line 3
Доступ к базе предоставлю в личку.mysql> SELECT VERSION();
+-------------------------+
| VERSION() |
+-------------------------+
| 5.0.67-community-nt-log |
+-------------------------+
1 row in set (0.00 sec)