我需要通过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 中没有检查 - 查询必须没有错误。并且注射是可能的。