【问题标题】:How to get last inserted row ID from wordpress database with trigger which increment ID如何使用触发器增加 ID 从 wordpress 数据库中获取最后插入的行 ID
【发布时间】:2017-05-27 13:17:30
【问题描述】:

我使用带有数据库的 Wordpress。我的问题是我想在使用wpdb-> insert 时检索插入的 ID。我想澄清一下,我使用数据库触发器增加了 ID,因为我的表是一个相对实体。我正在考虑创建一个在插入后调用的过程。

我的触发器

BEGIN
  DECLARE num INTEGER;
  IF NEW.id IS NULL THEN
    SET num =  
    (
      SELECT MAX(id) + 1
      FROM ab_autreFrais
      WHERE idDevis = NEW.idDevis
    );
    SET NEW.id = num;
  ELSEIF NEW.id = 0 THEN
    SET num = 
    (
      SELECT MAX(id) + 1
      FROM ab_autreFrais
      WHERE idDevis = NEW.idDevis
    );
    SET NEW.id = num;
  END IF;
END

【问题讨论】:

    标签: php mysql sql wordpress triggers


    【解决方案1】:

    您可以使用LAST_INSERT_ID() 函数代替触发器。您也可以通过存储过程的输出参数获取此值。
    或者,您可以使用辅助表或全局变量从触发器中放入 id 值。例如:

    ... 
    SET NEW.id = num;
    UPDATE `SysData` SET `LastID` = num;
    ... 
    

    【讨论】:

    • 是的,我可以使用 last_insert_id 但表的 id 不使用自动增量。我也无法从我的数据库中创建程序
    • @labardass,哦,对不起!但是你为什么不想使用自动增量列呢?
    • 因为我想做一个相对实体,你知道相对实体吗?
    • @labardass,我从未使用过相关实体。
    • 我想找到解决我问题的方法。我去使用一个选择来获取最大 id 并在这个 id 上加 1
    【解决方案2】:

    @亚历山大 UPDATE ``SysData`` SET ``LastID`` = num; 不适用于 MySQL SysData 不存在。我在 phpmyadmin 上的 sql 中使用了 SET SESSION last_insert_id = num 它可以工作,但是当我调用 last_insert_id() 时使用 wpdb 它返回 0

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2023-03-14
      相关资源
      最近更新 更多