MYSqli 更新最后一行

标签 mysql sql triggers

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

最佳答案

如果不可能同时进行另一个插入,您可以继续使用 LAST_INSERT_ID() MYSQL提供的函数来获取最后插入的行的唯一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;

希望这有帮助。

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

相关文章:

java - 如何在 hibernate 中限制对象属性中的集合?

sql - 在 activerecord 中自动大写列名和表名

java - 有没有办法从 System.out.println 触发触发器?

postgresql - 如何在从表中删除时创建触发器以删除相应的 View ?

php - 跨多个表的更高效的数据库结构

MySql/Wordpress 从某些链接中去除文件扩展名

php - Prestashop 类别页面加载速度太慢

PHP 5.3.3 - 未加载 Mysql 扩展

php - laravel5.2 auth 注册用户表未找到

sql - 插入、更新、删除后将数据输入到具有序列的日志表中的 PL/SQL 触发器