У меня есть 2 курсора в mysql, второй курсор должен запускаться с каждой первой итерацией курсора, не открывая его снова. Есть идеи? Заранее спасибо для экс: -Можно ли использовать один курсор несколько раз, не открывая его снова?
DECLARE email_not_found INT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET email_not_found = 1;
open cur1;
open cur2;
REPEAT
FETCH cur1 INTO s1;
REPEAT
FETCH cur2 INTO s2;
if s1=s2
do something.
UNTIL email_not_found=1 END REPEAT;
UNTIL email_not_found=1 END REPEAT;
close cur1;
close cur2;
Поскольку данные в курсоре огромны, я не хочу открывать несколько раз, вместо этого использую его несколько раз. После достижения в конце курсора мы можем вернуть курсор назад к началу? – AmbrishK
MySQL Cursor не прокручивается, поэтому вы можете двигаться только вперед. Альтернатива, попробуйте заменить два вложенных курсора на JOINS, но я не уверен, насколько это возможно или нет, не заглядывая в запросы для двух курсоров. – Amit
Чтобы избежать объединения непосредственно в таблицы, я использую курсоры. Потому что есть данные за один день, и я думал, что будет легко взять целые данные сразу в курсор, чем объединения и группы, которые внутренне сортируют много времени, и это стоит дороже. THANK YOU – AmbrishK