Ich habe eine folgende Prozedur definiert.Mysql gespeicherte Prozedur mit Cursor abgerufene Variable in SQL-Abfrage
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
Nach dieser Prozedur läuft i db.tbl doesn't exist
eine Störung erhalte. Also ich suchte, ob es eine Möglichkeit gibt, ein cursor abgerufenes Objekt in einer anderen Abfrage zu verwenden. Das Problem, das ich all diese langweiligen Sachen mache, ist, dass ich Daten aus allen Tabellen einer db mit einer bestimmten where-Klausel löschen möchte. Hinweis: Alle Tabellen haben eine Spalte updated_at
mit Datumsformat. (Ich bin ein Neuling zu MySQL gespeicherten Procs).
Prozedur des Datenbanknamen und Tabellen Datenbanknamen identisch sind? –
ja .. beide DBs sind die gleichen – Swaps