通过将单个消息发布到 kafka 来更新 mysql 中的多个字段



我需要通过kafka connect在Mysql 'Table1'中更新过去10天记录的状态为De Active。 我将如何实现将一条记录发布到 kafka 主题,因为 mysql 提供在单个查询中执行选择和更新。

演示示例。

-- create stored procedure (once)
CREATE PROCEDURE execute_many_queries (queries_text TEXT)
BEGIN
REPEAT
SET @sql := SUBSTRING_INDEX(queries_text, ';', 1);
SET queries_text := TRIM(LEADING ';' FROM TRIM(LEADING @sql FROM queries_text));
PREPARE stmt FROM @sql;
EXECUTE stmt;
DROP PREPARE stmt;
UNTIL queries_text = '' END REPEAT;
END
-- create testing table
CREATE TABLE test (id INT, val INT);
-- execute 3 queries by 1 statement
CALL execute_many_queries ('INSERT INTO test VALUES (1,11), (2,22); UPDATE test SET val = 222 WHERE id = 2; SELECT * FROM test;');
ID | val -: |--:  1 | 11  2 |222
-- execute more 2 queries by 1 statement
CALL execute_many_queries ('UPDATE test SET val = 111 WHERE id = 1; SELECT * FROM test;');
ID | val -: |--:  1 |111  2 |222

db<>在这里小提琴

谨慎使用! SP 中没有检查 - 查询必须没有错误。并且注射是可能的。

相关内容

  • 没有找到相关文章

最新更新