Como posso criar uma tabela com um nome dinâmico (com base na data_ atual) e fazer referência a ela nas instruções INSER

No momento, tenho que executar novamente a consulta de seleção de dados todos os meses, onde crio uma tabela base. Essa tabela é chamada algo comoMyDB.MyTable_Current_Date, então hoje seriaMyDB.MyTable_201811 usando o formato de data AAAAM

Em vez de precisar definir o nome manualmente (usando ctrl + h), eu gostaria que isso fosse feito automaticamente. Meu objetivo é que eu possa abrir o SQL e executar a consulta em que a tabela criada éMyTable_YYYYMM.

ota: eventualmente, também quero deixar o SQL executar automaticamente todos os meses, mas por enquanto esse é um bom primeiro passo para o meu entendiment

Fiz o abaixoprocedimento armazenad. O problema é que, se eu quiser fazer umalter table ouinsert into, não posso (ou não sei como) fazer referência à tabela que foi criad

REPLACE PROCEDURE DB.table_yymm
(
IN      db_name VARCHAR(128), 
    tbl_name    VARCHAR(128)
    )
BEGIN
    DECLARE create_name VARCHAR(261) 
    ;   
    DECLARE sql_stmt    VARCHAR(600)
    ;

    SET create_name = db_name || '.' || tbl_name || CAST(
                                                    (CURRENT_DATE (FORMAT 'yymm'))
                                                    AS CHAR(4)
                                                    )
    ;
    SET sql_stmt = 'CREATE TABLE ' || create_name || ' (testvar char(1))' || ';' ;

    EXECUTE IMMEDIATE sql_stmt;         
END;

CALL prd_work_lm.table_yymm('My_DB', 'My_Table')

Devo fazer isso usando umprocedimento armazenad ou usando umunção definida pelo usuário?

Seria ideal se eu pudesse simplesmente me referir a alguma função, por exemplo:CREATE TABLE DB.My_UDF(<My_DB>, <My_Table_Name>)

Pode me ajudar fornecendo um exemplo de um exemplo de código?

questionAnswers(1)

yourAnswerToTheQuestion