如何创建循环工作的触发器?

ijxebb2r  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(190)

我试图从一个表中计算“已批准”项目的数量,并在另一个表中显示此数量。比如进度条。为了做到这一点,我做了一个触发器,但它不工作。

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

首先,我把尺寸(size)用这种格式排成一行- 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    |                |
+------------+--------------+------+-----+---------+----------------+

尺寸控制

+--------------------------+-------------+------+-----+---------+----------------+
| 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       |                |
+--------------------------+-------------+------+-----+---------+----------------+

调度表示例:

以及批准项目的柜台:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题