0
J'essaie de créer une procédure en MySQL qui utilise un curseur et une exécution. Je voudrais introspecter le schéma et mettre à jour toutes les tables qui ont une colonne de version, en mettant la version à 0. Je pense qu'il me manque une boucle (recherche d'aide ici), mais je reçois également une erreur avec mon SQL dynamique. Des idées?Curseur MySQL et préparer une déclaration - Qu'est-ce que c'est?
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