MariaDB INSERT - 如何增加重复项的计数器?

问题描述 投票:0回答:2

我正在将事件日志数据写入 MariaDB 数据库。主键包括时间到一秒的粒度。我有时会收到大量相同的输入数据。这违反了密钥,目前被忽略。

我想在表中添加一个计数器字段,这样,如果相同的数据在同一秒内到达,计数器会显示收到了多少相同的项目。

我想要等同于以下虚构的语法

INSERT INTO T (a, b, c, counter) VALUES (?, ?, ?, 1)
ON DUPLICATE KEY UPDATE T.counter = 1+T.counter;

我可以用存储过程做到这一点,但没有它可能吗?

我花了一个多小时寻找答案,但我认为我的关键字太接近涉及自动递增 SERIAL 字段的各种常见问题。

mariadb counter sql-insert increment on-duplicate-key
2个回答
0
投票

试试这个

INSERT INTO T (a, b, c, counter)
VALUES (?, ?, ?, 1)
ON DUPLICATE KEY UPDATE counter = counter + VALUES(counter);

0
投票

您的“编造”语法完全按原样工作。

© www.soinside.com 2019 - 2024. All rights reserved.