mySQL-通过添加和减去字段以及捕获时间戳来更新数量字段?怎么用?

mySQL-通过添加和减去字段以及捕获时间戳来更新数量字段?怎么用?,mysql,Mysql,我有一张桌子: 我首先在纸箱中创建一个新记录,在“零件号”和“数量”中插入当前值 接下来,我需要使用另外两列进行添加和提取,从“数量”中添加或提取(减去) 如何使“数量”显示添加和拉出的纸箱的最新结果 我还需要给每个新的、添加的和拉取的文件加上时间戳 TABLE NAME: cartons_current +------------+--------------+--------+--------+-------------------+------------+ | Column

我有一张桌子:

我首先在纸箱中创建一个新记录,在“零件号”和“数量”中插入当前值

接下来,我需要使用另外两列进行添加和提取,从“数量”中添加或提取(减去)

如何使“数量”显示添加和拉出的纸箱的最新结果

我还需要给每个新的、添加的和拉取的文件加上时间戳

 TABLE NAME:  cartons_current
 +------------+--------------+--------+--------+-------------------+------------+
 | Column     |  Type        |  Null  |  Key   |  Default          |  Extra     |
 +------------+--------------+--------+--------+-------------------+------------+
 | part_no    | varchar(20)  |  No    |  Prim  |                   |            |
 +------------+--------------+--------+--------+-------------------+------------+
 | qty        | int(8)       |  No    |        |                   |            |
 +------------+--------------+--------+--------+-------------------+------------+
 | qty_time   | timestamp    |  No    |        | CURRENT_TIMESTAMP |            |
 +------------+--------------+--------+--------+-------------------+------------+
 | add_qty    | int(8)       |  No    |        |                   |            |
 +------------+--------------+--------+--------+-------------------+------------+
 | add_time   | timestamp    |  No    |        | CURRENT_TIMESTAMP |            |
 +------------+--------------+--------+--------+-------------------+------------+
 | pull_qty   | int(8)       |  No    |        |                   |            |
 +------------+--------------+--------+--------+-------------------+------------+
 | pull_time  | timestamp    |  No    |        | CURRENT_TIMESTAMP |            |
 +------------+--------------+--------+--------+-------------------+------------+

在更新之前的
触发器中,您可以更改值,这样您就可以在这些触发器中执行时间戳魔术,您可以存储最后一次更改

DELIMITER $$

CREATE TRIGGER ai_cartons_each BEFORE UPDATE ON cartons 
FOR EACH ROW
BEGIN
  IF new.qty_added <> old.qty_added THEN 
    SET new.added_timestamp = NOW();
  END IF;
END $$

DELIMITER ;
分隔符$$
在更新纸盒之前,创建触发器ai_纸盒
每行
开始
如果添加了新数量,则添加了旧数量
设置new.added_timestamp=NOW();
如果结束;
结束$$
定界符;
另请参见对其他问题的回答: