gpt4 book ai didi

MySQL-从选择查询插入查询中更新字段

转载 作者:行者123 更新时间:2023-11-29 21:58:39 25 4
gpt4 key购买 nike

我有以下两个表AB

我想将表 A 中的记录插入表 B 中,但在将新记录添加到表中时使用新的 orderNum 值表B

我有以下查询,但未按预期工作。

INSERT INTO B (refId, userId, orderNum)
SELECT id, '1', (SELECT count(refId) + 1 FROM B WHERE userId = 1) as orderNum
FROM A
WHERE is_mendatory IS NOT NULL
ORDER BY is_mendatory ASC

假设表 B 中有 3 条记录,并且使用 SELECT 查询我将再插入 5 条记录。因此,这 5 条新记录应插入 orderNum 为 4,5,6,7,8 的订单号。

但目前它仅将 4 设置为新 5 条记录的 orderNum

有人可以对此提出建议吗?

编辑:

我在 orderNum 字段中获得了 4 个新 5 条记录。

最佳答案

创建一个插入前触发器,为每个 INSERT 计算 B 中的行数,将数字存储在变量中,用行数更新表。

DELIMITER //

CREATE TRIGGER orderNum_after_insert
BEFORE INSERT
ON B FOR EACH ROW
BEGIN

SET @orderNo:=(SELECT COUNT(*) FROM B);
SET NEW.orderNum=@orderNo;

END; //

DELIMITER ;

关于MySQL-从选择查询插入查询中更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com