我只是想知道这是否可以在MySQL中使用。
这是我的疑问:
update stock_trans_detail_copy_origa od
insert into item_stock_detail_copy_origa(item_stock_id,quantity,unit_cost)
select o.item_stock_id,a.item_stock_detail_balance,a.unit_cost from stock_trans_detail_copy_origa a
inner join item_stock_copy_origa o on o.item_id = a.item_id and o.inv_loc_id = a.inv_loc_id
set od.item_stock_detail_id = last_insert_id();
在将新记录插入特定表时,我还想使用新插入记录中的值更新另一个表。
然后我尝试了这个触发器,但是给出了一个错误:SQL错误(1442):无法在存储的函数/触发器中更新表'stock_trans_detaila',因为它已被调用此存储函数/触发器的语句使用。
CREATE TRIGGER `item_stock_detaila_after_insert` AFTER INSERT ON `item_stock_detaila` FOR EACH ROW BEGIN
update stock_trans_detaila
set item_stock_detail_id = new.item_stock_detail_id;
END
这是我插入记录的代码:
insert into item_stock_detaila(item_stock_id,quantity,unit_cost)
select o.item_stock_id,a.item_stock_detail_balance,a.unit_cost from stock_trans_detaila a
inner join item_stock o on o.item_id = a.item_id and o.inv_loc_id = a.inv_loc_id;
答案 0 :(得分:2)
触发器最适合您的方法。试着参考
http://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html
创建触发后,将新插入的记录插入其他表
CREATE TRIGGER ins_sum BEFORE INSERT ON account
FOR EACH ROW SET @sum = @sum + NEW.amount;