从 MySQL 中的“重复键更新”获取动态值
Posted
技术标签:
【中文标题】从 MySQL 中的“重复键更新”获取动态值【英文标题】:Get dynamic value from 'on duplicate key update' in MySQL 【发布时间】:2016-05-13 08:19:23 【问题描述】:我有一个看起来像这样的存储过程:
DELIMITER ;;
CREATE PROCEDURE test_proc(IN _key INT, IN _value VARCHAR(45), OUT _counter INT)
BEGIN
INSERT INTO test_table(key, value, counter)
VALUES (_key, _value, 1)
ON DUPLICATE KEY UPDATE
value = _value,
counter = counter + 1;
SELECT counter FROM test_table WHERE key = _key INTO _counter;
END ;;
DELIMTER ;
是否可以从插入语句中取出计数器而无需查询数据库?我的架构实际上比这要复杂得多,有数百万条记录和大量操作,所以我希望尽可能高效。
【问题讨论】:
【参考方案1】:很遗憾,没有。您必须执行SELECT
查询。
【讨论】:
我需要从插入中取出动态计数器,而不是 ID。计数器只是数据库中的一列,用于跟踪记录更新的次数。 这就是为什么我们要更仔细地阅读,女士们,先生们。第一部分仍然存在;您必须使用SELECT
。
非常感谢!这就是我的想法,但无论如何都想问。如果你修正你的答案,我会投票等等。以上是关于从 MySQL 中的“重复键更新”获取动态值的主要内容,如果未能解决你的问题,请参考以下文章