我试图在我在
中插入一行后在mysqli中设置一个触发器 tblallocation
(AllocID,
AssetID,
AssetName ,
AssetModel,
Custody,
Location,
Discontinued,
DiscDate
DateAlloc,
ReturnStockDate)
触发器更新tblassets并设置allocated= true
(assetID,
Asset,
Brand,
Model,
Serial,
AssetCondition,
description,
Location,
Allocated)
我正在按如下方式编写触发器,它不起作用:
CREATE TRIGGER `change to allocated` AFTER INSERT ON `tblallocation`
FOR EACH ROW update tblassets SET allocated=1
where tblassets.AssetID =tblallocation.MAX(AssetID)
答案 0 :(得分:0)
如果在此期间不可能再进行插入,则可以继续使用MYSQL提供的LAST_INSERT_ID()
函数来获取最后插入行的唯一ID。 (有关更多参考,请查看http://dev.mysql.com/doc/refman/5.7/en/getting-unique-id.html)
但是,如果这不适合您,那么您可以使用子查询而不是tblallocation.MAX(AssetID)。
子查询应该类似于
SELECT AssetID from tblallocation order by AssetID desc LIMIT 1;
希望这有帮助。
答案 1 :(得分:0)
谢谢大家,我找到了解决方案。
DROP TRIGGER IF EXISTS change to allocated
;创建DEFINER = root
@ localhost
TRIGGER change to allocated
插入tblallocation
后每行更新tblassets SET allocated = 1其中tblassets.assetID = new.assetid