Курсор MySQL и инструкция Prepare - что не так - PullRequest
0 голосов
/ 28 июня 2011

Я пытаюсь создать процедуру в MySQL, которая использует курсор и команду execute. Я хотел бы проанализировать схему и обновить все таблицы, в которых есть столбец версии, установив версию на 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

1 Ответ

0 голосов
/ 02 июля 2011

Больше не проблема.Я изменил подход к проблеме.

...