Я пытаюсь посчитать количество «одобренных» предметов из одной таблицы и показать это число в другой.Как и индикатор выполнения.Для этого я сделал триггер, но он не работает.
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](https://i.stack.imgur.com/QTpTM.png)
И счетчик утвержденных позиций: ![enter image description here](https://i.stack.imgur.com/EboqX.png)