"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como trabalhar com nomes dinâmicos de tabela em procedimentos e funções armazenadas MySQL?

Como trabalhar com nomes dinâmicos de tabela em procedimentos e funções armazenadas MySQL?

Postado em 2025-03-24
Navegar:258

How to Work with Dynamic Table Names in MySQL Stored Procedures and Functions?

nomes de tabela dinâmica na função do procedimento armazenado

em mysql, procedimentos e funções armazenados fornecem um mecanismo poderoso para executar operações complexas no banco de dados. No entanto, ao trabalhar com nomes dinâmicos de tabela, certas limitações surgem. 'Nome' em MyName DE nome da mesa ONDE >

No entanto, o uso dessa abordagem com nomes dinâmicos de tabela encontrará um erro devido à substituição do nome da tabela real com o nome da variável tableName. Selecione 'nome' DE ", nome do table", ONDE >

Infelizmente, esse método não é suportado em funções de procedimento armazenadas, pois o MySQL proíbe o SQL dinâmico em tais contextos. (No nome do tablename Varchar (50), em Myid Int (11), Out MyName Varchar (50)) COMEÇAR Set @getName = Concat ('Selecione o nome em @var1 de', tableName ',' where>

SELECT
  'name' INTO myName
FROM
  tableName
WHERE
 >

para invocar este procedimento com nomes de tabela dinâmica, você pode usar a seguinte sintaxe:

set @tablename = 'tbl'; Set @myid = 1005; Set @name = null; Ligue para getName (@TableName, @Myid, @Name); Selecione @Name;

SET @GetName = CONCAT("
  SELECT
    'name'
  FROM
    ", tableName, "
  WHERE
   >
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3