Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gabrielfalieri

problema de procedure

Recommended Posts

Boa tarde.

Eu estou criando uma procedure com vaviavel, só que quando eu chamo essa procedure, ele pega o nome da variável.

DELIMITER ||
CREATE PROCEDURE sp_verificaColuna(IN colunas VARCHAR(50))
BEGIN
IF NOT EXISTS (
SELECT * FROM information_schema.COLUMNS WHERE
TABLE_SCHEMA = Database()
AND TABLE_NAME='prt_license'
AND COLUMN_NAME = colunas
)
THEN
ALTER TABLE `eco_portaldb`.`prt_license`
ADD COLUMN colunas VARCHAR(100) NULL DEFAULT NULL AFTER `date_update`;
end if;
END ||
DELIMITER ;


O que eu estou fazendo errado, toda vez que eu chamo essa procedure, ele cria a tabela como "colunas", queria que fosse o parametro que passo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, você não pode usar variáveis para executar um ALTER TABLE, por isso o PREPARE.

 

Vou tentar dar um exemplo, mas não me aprofundei nas procedures.

SET @alter_table:=CONCAT("ALTER TABLE `eco_portaldb`.`prt_license` ADD COLUMN ", colunas, " VARCHAR(100) NULL DEFAULT NULL AFTER `date_update`";

PREPARE @alter_table;

EXECUTE @alter_table;

Lembrando que coloquei links pra estudar e tirar isso de letra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.