我想寫一個存儲過程遍歷我的數據庫中的所有表並執行一些操作。MySQL:爲`show tables`聲明一個遊標?
drop procedure if exists p2;
DELIMITER //
CREATE PROCEDURE `p2`()
LANGUAGE SQL
DETERMINISTIC
SQL SECURITY DEFINER
COMMENT 'A procedure'
BEGIN
declare cur1 cursor for
show tables from my_database_name
END//
call p2;
這是行不通的;我得到一個錯誤說我在SQL語法附近「節目表從my_database_name」
當然是一個錯誤,而不是做show tables from my_database_name
我真正想說的show tables from database()
或show tables from (select database())
,這兩者都不工作。
幫助?我可以直接在SQL中執行此操作,還是需要先從我的程序中調用show tables
,然後在那裏遍歷結果集?我如何創建一個光標來捕獲database()
或show tables
之類的值?
太棒了,謝謝!在這種情況下,我可以用'database()'替換'db_name'並且它按預期工作。 – poundifdef 2012-02-14 23:30:27