我已經定義了以下過程。在sql查詢中使用遊標提取變量的Mysql存儲過程
create procedure deleteData()
begin
DECLARE no_tbls INT;
DECLARE tbl VARCHAR(64);
DECLARE tbls_cr CURSOR for SELECT DISTINCT table_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema='db';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_tbls=1;
OPEN tbls_cr;
SET no_tbls=0;
while no_tbls=0 do
fetch tbls_cr into tbl;
select tbl.updated_at from tbl limit 1;
end while;
close tbls_cr;
end
運行此過程後,我收到錯誤db.tbl doesn't exist
。 所以我在搜索是否有方法在另一個查詢中使用光標提取對象。我正在做所有這些乏味的事情的問題是,我想從一個特定的where子句的數據庫的所有表中刪除數據。 注意:所有表都有一個帶日期格式的列updated_at
。 (我是MySQL存儲過程的新手)。
過程的數據庫名和表數據庫名稱相同? –
是的..這兩個數據庫是相同的 – Swaps