我正在尝试在MySQL中创建一个使用游标和执行的过程。我想反省架构并更新所有具有版本列的表,将版本设置为0.我认为我错过了一个循环(在这里寻求帮助),但我的动态SQL也出错了。有任何想法吗?
DELIMITER $$
CREATE PROCEDURE update_version_number(schemaName int)
BEGIN
DECLARE the_table_name VARCHAR(200);
DECLARE version_cursor CURSOR
FOR
SELECT TABLE_NAME FROM information_schema.columns WHERE table_schema = "myschema" AND COLUMN_NAME = "version" AND TABLE_NAME <> "db_info";
OPEN version_cursor;
FETCH version_cursor into the_table_name;
PREPARE run_version_update From 'UPDATE ? SET version = 0';
SET @a = the_table_name;
EXECUTE run_version_update USING @a;
DEALLOCATE PREPARE run_version_update;
CLOSE version_cursor;
END
答案 0 :(得分:0)
不再是问题。我改变了解决问题的方法。