0
私は、現在のデータベースに一部テーブルの内容を消去する簡単なストアドプロシージャを記述しようとしています - 私はINFORMATION_SCHEMA内のテーブルのリストに対してプレフィックスを照合することによって、これをやっている:ストアドプロシージャ内で現在のデータベースを識別する方法は?
delimiter $$
create procedure local_flush_cache(db varchar(255))
begin
select @str_sql:=concat('delete from ',group_concat(table_name))
from information_schema.tables
where table_schema=db and table_name like 'cache_%';
prepare stmt from @str_sql;
execute stmt;
drop prepare stmt;
end$$
delimiter ;
私は、dbパラメータを削除し、現在アクティブなデータベース上で機能するようにしたいと考えています。
データベースがまだ選択されていないことを認識してエラーを出力する必要があると思います(すべてのデータベースのすべてのキャッシュテーブルを誤ってフラッシュしないようにする)。
感謝を - 今私は私が構築だクエリで私の構文エラーの修正に取り組んで取得することができます。) – HorusKol