資料庫用到的兩張表和表結構如下:




需求:
當new_table插入一行資料時,如果new_table1有一行記錄中的日期和物品是能在new_table中找到,則將new_table中符合這個日期和物品的所有記錄的數量,合成材料1,合成材料2,合成材料3相加,合成材料總和是有合成材料1,合成材料2,合成材料3相加,最后再將所有合成材料3相加
如果在new_table1中找不到和new_table中配料日期和物品相符合的記錄,則將new_table新插入的那行資料賦值給new_table1,并計算合成材料總和(依然是合成材料1,合成材料2,合成材料3相加)
總的意思是每個時刻,new_table1的同種物品同一天最多只能有一條記錄
請教一下各位,謝謝了
uj5u.com熱心網友回復:
補充下,有資料的那張表是new_table,沒資料的是new_table1uj5u.com熱心網友回復:
當new_table插入一行資料時-------------------- 說明觸發器在 new_table 上
則將new_table中符合這個日期和物品的所有記錄的數量,合成材料1,合成材料2,合成材料3相加
-------------------- 說明你要更新的仍然是 new_table
MySQL 中不支持這樣的行為
uj5u.com熱心網友回復:
我可能說的不夠明確,這里相加后的更新是指更新new_table1
uj5u.com熱心網友回復:
-- 在日期和物品上建立唯一索引
alter table new_table1 add unique(日期,物品);
-- 在 new_table 上建立觸發器
create trigger tr_insert_new_table after insert on new_table for each row
insert into new_table1(日期,物品,合成材料1,合成材料2,合成材料3)
values(日期,物品,合成材料1,合成材料2,合成材料3
on duplicate key update
合成材料1=values(合成材料1)+合成材料1,
合成材料2=values(合成材料2)+合成材料2,
合成材料3=values(合成材料3)+合成材料3
;
uj5u.com熱心網友回復:
少寫了 new.-- 在日期和物品上建立唯一索引
alter table new_table1 add unique(日期,物品);
-- 在 new_table 上建立觸發器
create trigger tr_insert_new_table after insert on new_table for each row
insert into new_table1(日期,物品,合成材料1,合成材料2,合成材料3)
values(new.日期,new.物品,new.合成材料1,new.合成材料2,new.合成材料3)
on duplicate key update
合成材料1=values(合成材料1)+合成材料1,
合成材料2=values(合成材料2)+合成材料2,
合成材料3=values(合成材料3)+合成材料3
;
uj5u.com熱心網友回復:
還有這種操作嗎。牛皮。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/96648.html
標籤:MySQL
上一篇:如何給多個表同時增加新分類id
下一篇:R語言 資料型別轉換問題
