2011-06-27 8 views
0

カーソルと実行を使用するプロシージャをMySQLで作成しようとしています。私は、スキーマをイントロスペクトし、バージョン列を持つすべてのテーブルを更新して、バージョンを0に設定したいと思っています。(私はここで助けを探しています)ループがなくなっていると思います。何か案は?MySQLカーソルと準備文 - 間違っているもの

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

もう問題ありません。私はどのように問題に近づいたのかを変えました。

関連する問題