2013-02-22 4 views
0

Возвращает следующую сохраненную функцию: '# 1172 - Результат состоял из нескольких строк'Сохраненная функция с возвратом цикла состояла из нескольких строк?

Что я делаю неправильно?

Это хранимая функция без параметров и ожидает возвращения int.

BEGIN 
    DECLARE l_user_id INT; 

    sloop:LOOP 
     SELECT `user_id` INTO `l_user_id` FROM `users` WHERE `area_id` = 1; 

    INSERT INTO `user_function_hours` SET `function_hour_id` = 1, `user_id` = l_user_id; 
    INSERT INTO `user_function_hours` SET `function_hour_id` = 2, `user_id` = l_user_id; 
    INSERT INTO `user_function_hours` SET `function_hour_id` = 3, `user_id` = l_user_id; 
    INSERT INTO `user_function_hours` SET `function_hour_id` = 4, `user_id` = l_user_id; 
    INSERT INTO `user_function_hours` SET `function_hour_id` = 5, `user_id` = l_user_id; 
    END LOOP sloop; 

    RETURN 1; 
END 

ответ

0

Да, мы столкнемся с такими ошибками в триггерах.

Пожалуйста, проверьте этот вопрос. В результате получается более 1 записи.

SELECT `user_id` INTO `l_user_id` FROM `users` WHERE `area_id` = 1; 

Пожалуйста, измените этот запрос как,

SELECT `user_id` INTO `l_user_id` FROM `users` WHERE `area_id` = 1 LIMIT 1; 

Так что, вы можете решить эту ошибку.

+0

А, я вижу, что я делаю неправильно. Я хотел повторить результат. Но я просто петлю сейчас. спасибо за глаз openenr. – pascalvgemert

+0

Добро пожаловать. Я не могу тебя достать. – user2003356

+0

Нужно использовать курсор вместо выбора. – pascalvgemert