2011-09-23 84 views
0

我有三个表格,所以我可以显示单独的表格并跟踪不同的事物。如何更新mySQL中其他两个表的数量列?

如何使纸箱_CURRENT“在CARTONS_PULLED pull_qty”和‘’在CARTONS_ADDED更新‘数量add_qty’?

当我创建它插入到CARTONS_CURRENT量新型号。

现在我需要更新CART​​ONS_CURRENT中的'qty',并从其他两个表中添加和拉取? 'part_no'是主键,并且始终是更新的参考。

这里是我的表:

DATABASE NAME: _hero  

TABLE NAME:  CARTONS_CURRENT 
+--------------+--------------+--------+--------+-------------------+------------+ 
| Column     |  Type        |  Null  |  Key   |  Default          |  Extra     | 
+--------------+--------------+--------+--------+-------------------+------------+ 
| orig_time  | timestamp    |  No    |        | CURRENT_TIMESTAMP |            | 
| type    | text     |  No    |        |     |            | 
| part_no     | varchar(20)  |  No    |  Prim  |                   |            | 
| description | varchar(75)  |  No    |     |                   |            | 
| count  | varchar(2)   |  No    |     |                   |            | 
| size   | varchar(30)  |  No    |     |                   |            | 
| min   | int(7)    |  No    |     |                   |            | 
| max   | int(7)    |  No    |     |                   |            | 
| qty         | int(8)       |  No    |        |                   |            | 
+--------------+--------------+--------+--------+-------------------+------------+ 

TABLE NAME:  CARTONS_ADDED 
+--------------+--------------+--------+--------+-------------------+------------+ 
| Column     |  Type        |  Null  |  Key   |  Default          |  Extra     | 
+--------------+--------------+--------+--------+-------------------+------------+ 
| add_time  | timestamp    |  No    |  Prim  | CURRENT_TIMESTAMP |            | 
| type      | text   |  No    |     |                   |            | 
| part_no     | varchar(20)  |  No    |  Prim  |                   |            | 
| add_type  | varchar(25)  |  No    |     |                   |            | 
| add_qty  | int(8)    |  No    |     |                   |            | 
| add_ref  | varchar(35)  |  No    |     |                   |            | 
| add_by  | text    |  No    |     |                   |            | 
| add_notes | varchar(300) |  No    |     |                   |            | 
+--------------+--------------+--------+--------+-------------------+------------+ 

TABLE NAME:  CARTONS_PULLED 
+--------------+--------------+--------+--------+-------------------+------------+ 
| Column     |  Type        |  Null  |  Key   |  Default          |  Extra     | 
+--------------+--------------+--------+--------+-------------------+------------+ 
| pull_time  | timestamp    |  No    |  Prim  | CURRENT_TIMESTAMP |            | 
| type      | text   |  No    |     |                   |            | 
| part_no     | varchar(20)  |  No    |  Prim  |                   |            | 
| pull_type | varchar(25)  |  No    |     |                   |            | 
| pull_qty  | int(8)    |  No    |     |                   |            | 
| pull_ref  | varchar(35)  |  No    |     |                   |            | 
| pull_by  | text    |  No    |     |                   |            | 
| pull_notes | varchar(300) |  No    |     |                   |            | 
+--------------+--------------+--------+--------+-------------------+------------+ 

回答

0

你会写triggersCARTONS_PULLEDCARTONS_ADDED表里面做在CARTONS_CURRENT表中的相应的更新。即像

CREATE TRIGGER Upd_Cartons_qty 
AFTER INSERT ON CARTONS_ADDED FOR EACH ROW 
BEGIN 
    UPDATE CARTONS_CURRENT SET qty = qty + NEW.add_qty WHERE part_no = NEW.part_no; 
END; 
如果要在新的记录插入到 CARTONS_ADDEDadd_qty值添加到 CARTONS_CURRENT.qty

相关问题