我试图在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)

最佳答案

如果在此期间不可能再进行一次插入,则可以继续使用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;


希望这可以帮助。

关于mysql - MYSqli更新最后一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41138331/

10-12 18:33