MySQL Procedura szukająca UserId=X we wszystkich tabelach
Prosiłbym o pomoc w procedurze MySQL ,która przeleciała by po wszystkich tabelach w bazie w celu znalezienia konkretnego numeru (INT) przyłóżmy X gdzie UserId = X. USerId to kolumna w tabelach.

Schemat jest taki ,że mam tabelę
COS ( ... ) --> brak UserId
COS1 (... , UserId,...)
COS1 (... , UserId,...)
COS2 (... , UserId,...)

KOT
KOT1
KOT2
KOT3

...

Nazwy tabel podałem przykładowe ale schemat jest taki ,że to co nie ma po nazwie tabeli żadnej cyfry jest tak jakby rodzicem a reszta tabel tworzy się dynamicznie gdy osiągniemy konkretną liczę rekordów w tabeli

chciałbym wywoływać procedurę poprzez
CALL SearchUser(X); --> X - numer użytkownika

prosiłbym o pomoc lub jeśli ktoś ma gotowy skrypt to o niego.

Napisałem coś takiego , ale to jednak nie działa tak jak powinno:

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE PROCEDURE `searchUser`( in_search varchar(50),in_column_name varchar(50) )
    READS SQL DATA
BEGIN
    DECLARE trunc_cmd VARCHAR(50);
    DECLARE search_string VARCHAR(250);
    DECLARE db,tbl,clmn CHAR(50);
    DECLARE done INT DEFAULT 0;
    DECLARE COUNTER INT;
    

    DECLARE table_cur CURSOR FOR
  

    SELECT concat('SELECT COUNT(*) INTO @CNT_VALUE FROM `',table_name,'` WHERE `', in_column_name,'` = "',in_search,'"') ,table_name,column_name FROM information_schema.COLUMNS WHERE TABLE_SCHEMA IN ('comments') and column_name=in_column_name ;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;

#Truncating table for refill the data for new search.
    PREPARE trunc_cmd FROM "TRUNCATE TABLE temp_details;";
    EXECUTE trunc_cmd ; 
    OPEN table_cur;
   
table_loop:LOOP
    
    FETCH table_cur INTO search_string,db,tbl,clmn;
    #Executing the search
    SET @search_string = search_string;
    SELECT  search_string;
    PREPARE search_string FROM @search_string;
    EXECUTE search_string;

    SET COUNTER = @CNT_VALUE;
    SELECT COUNTER;

    IF COUNTER>0 THEN
# Inserting required results from search to table
        INSERT INTO temp_details VALUES(db,tbl,clmn);
    END IF;
        
        IF done=1 THEN
            LEAVE table_loop;
        END IF;

END LOOP;
CLOSE table_cur;
SELECT * FROM temp_details;
    END 
 CREATE TABLE `temp_details` ( 
`t_schema` varchar(45) NOT NULL,
`t_table` varchar(45) NOT NULL,
`t_field` varchar(45) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
call get_table('2','userID'); 

Druga sprawa ,że ciągle mam komunikat: Incorrect number of Fetch variables