Как создать триггер, который работает в цикле? - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь посчитать количество «одобренных» предметов из одной таблицы и показать это число в другой.Как и индикатор выполнения.Для этого я сделал триггер, но он не работает.

BEGIN
SELECT value FROM STRING_SPLIT(NEW.size,'|')
@len = sp_spaceused value
WHILE @len > 0
    BEGIN
        UPDATE size_control_men
        SET number_of_approved_items =  number_of_approved_items +1
        WHERE Size_MEN = NEW.size
        @len = @len - 1;
    END
END

Прежде всего, у меня есть размеры (размер) в одной строке в этом формате - 45|43|42, поэтому яЯ должен пройти все из них в цикле, в BEGIN SELECT value FROM STRING_SPLIT(NEW.size,'|') @len = sp_spaceused value Я считаю их количество, затем в цикле я увеличиваю количество «одобренных» элементов.

Но этот триггер не 'вообще не работает: (

Этот триггер добавлен к диспетчеризации таблицы:

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | MUL | NULL    | auto_increment |
| name       | varchar(200) | YES  |     | NULL    |                |
| vendor     | varchar(100) | YES  |     | NULL    |                |
|                     .........                                     |
|                     .........                                     |
|                     .........                                     |
| size       | varchar(200) | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

size_control_men

+--------------------------+-------------+------+-----+---------+----------------+
| Field                    | Type        | Null | Key | Default | Extra          |
+--------------------------+-------------+------+-----+---------+----------------+
| id                       | int(11)     | NO   | MUL | NULL    | auto_increment |
| Size_MEN                 | varchar(20) | NO   |     | NULL    |                |
| number_of_approved_items | int(5)      | NO   |     | 0       |                |
+--------------------------+-------------+------+-----+---------+----------------+

Пример таблицы отправки: enter image description here

И счетчик утвержденных позиций: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...