如何解决如何从插入匹配值的行中增加值?
所以我正在尝试执行此过程并希望避免进行多次数据库调用。我想:
到目前为止我所拥有的:
CREATE OR REPLACE TRIGGER ChatAutoIncrement
ON chat
FOR INSERT
BEGIN
UPDATE chat
SET
count = ( ( SELECT u.cnt FROM ( SELECT ticket_id,count(*) as cnt FROM chat GROUP BY ticket_id ) u ) WHERE u.cnt > 1 )
WHERE
ticket_id IN
(
SELECT u.ticket_id,u.cnt
FROM
(
SELECT ticket_id,count(*) as cnt
FROM chat
GROUP BY ticket_id
) u
where u.cnt > 1
GROUP BY u.ticket_id
);
END;
这是 Workbench 的建议:
CREATE DEFINER = CURRENT_USER TRIGGER `blil_insurance`.`ChatAutoIncrement` AFTER INSERT ON `chat` FOR EACH ROW
BEGIN
UPDATE chat
SET
count =
(
SELECT u.cnt
FROM
(
SELECT ticket_id,count(*) as cnt
FROM chat
GROUP BY ticket_id
) u
where u.cnt > 1
GROUP BY u.ticket_id
)
WHERE
ticket_id IN
(
SELECT u.ticket_id,count(*) as cnt
FROM chat
GROUP BY ticket_id
) u
where u.cnt > 1
GROUP BY u.ticket_id
);
END
表格如下所示:
计数 | ticket_id | 日期 | id |
---|---|---|---|
1 | 1234 | 22/01/2021 14:01:05 | 1 |
1 | 2534 | 22/01/2021 14:03:05 | 2 |
2 | 1234 | 22/01/2021 14:05:20 | 3 |
1 | 1234 | 22/01/2021 14:05:20 | 4 |
这是我想要插入第三个表后的样子:
计数 | ticket_id | 日期 | id |
---|---|---|---|
1 | 1234 | 22/01/2021 14:01:05 | 1 |
1 | 2534 | 22/01/2021 14:03:05 | 2 |
2 | 1234 | 22/01/2021 14:05:20 | 3 |
3 | 1234 | 22/01/2021 14:08:20 | 4 |
我试过了:
----------------------------编辑----- ---------------------------
添加主键'id'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。