Я хочу добавить атрибут к условию while в MySQL

#mysql #schedule #mysql-event

#mysql #Расписание #mysql-событие

Вопрос:

я создаю свою первую базу данных на MySQL и хочу создать систему, подобную underground. Чтобы запустить систему, я хочу, чтобы они переходили с одной станции на другую с фиксированным временем в 2 секунды, поэтому я использую следующий код

 delimiter |
CREATE EVENT runBlue
ON SCHEDULE EVERY 2 SECOND
 DO
    BEGIN
     WHILE (SELECT Actual_Station FROM route WHERE Actual_Station) < 311 DO
     UPDATE mydb.route SET Actual_Station = (Actual_Station 1);
     END WHILE;
     WHILE (SELECT Actual_Station FROM route WHERE Actual_Station) >= 300 DO 
     UPDATE mydb.route SET Actual_Station = (Actual_Station-1);
     END WHILE;
    END |
    

delimiter ;
 

Что меня беспокоит, так это то, что нет приращения к Actual_Station, которое представлено INT , причина, по которой я это делаю, заключается в том, что метро разделено на 3 маршрута, это пример первого, который проходит от станции 300 до станции 311.

Комментарии:

1. Тогда намного проще и быстрее идентифицировать группы, если в маршрутах был столбец group_id вместо магических чисел. Однако я не уверен, чего вы пытаетесь достичь. Похоже, что вы увеличиваете и уменьшаете все станции. Разве route и mydb.route отличаются? Не могли бы вы показать свою схему и объяснить, что вы пытаетесь сделать более подробно?

2. СУБД предназначена для хранения и извлечения реляционных данных. Я не понимаю, какое это имеет отношение к этому.

3. Я хочу перейти от станции 300 к станции 311 и обратно, это объясняет приращение и уменьшение, эти магические числа являются идентификатором станции. Здесь не происходит ни увеличения, ни уменьшения, я думаю, что есть проблема в условии while

4. Сначала вы увеличиваете станцию до тех пор, пока она не примет значение 311, затем первый цикл while останавливается, а второй цикл while уменьшает значение до 299… Похоже, что в состоянии while нет ошибки, но ошибка в понимании того, как WHILE.. DO ...END WHILE это работает. (может быть, еще раз почитать документы ?)

5. Я тестирую это, нет ни увеличения, ни уменьшения