我将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
答案 0 :(得分:1)
您可以使用LAST_INSERT_ID()功能代替触发器。您还可以通过存储的procrdure的输出参数获取此值
或者您可以使用辅助表或全局变量从触发器中输入id
值。例如:
...
SET NEW.id = num;
UPDATE `SysData` SET `LastID` = num;
...
答案 1 :(得分:0)
@Alexander
UPDATE ``SysData`` SET ``LastID`` = num;
不适用于MySQL SysData不存在。我在phpmyadmin的sql中使用了SET SESSION last_insert_id = num
但是当我调用last_insert_id()
时它使用wpdb它返回0