1
resposta

Erro 1136 para novas variáveis

Pensei em criar novas colunas apenas para realizar testes e verificar se estou aprendendo, ao gerar uma nova variavel com nome Vdesconto e incluir a coluna vPreci após a tentativa de inserção dos dados me aparece o erro 1136 abaixo trago o código da procedure e a execução que estou tentando fazer

USE ko_place; DROP procedure IF EXISTS ko_place.NovoAluguel_24; ;

DELIMITER $$ USE ko_place$$ CREATE DEFINER=root@localhost PROCEDURE NovoAluguel_24

(vAluguel VARCHAR(20), vClientes VARCHAR (10), vHospedagem VARCHAR (10), vDataInicio DATE , vDataFinal DATE , vPrecoUnitario DECIMAL (10,2), vDesconto DECIMAL (10,2)) BEGIN DECLARE vDias INTEGER DEFAULT 0; DECLARE VPrecoTotal DECIMAL (10,2); DECLARE vPreci DECIMAL (10,2); SET vDias = (SELECT datediff(vDataFinal,vDataInicio)); SET vPrecoTotal = vDias*vPrecoUnitario; SET vPreci = vPrecoTotal-vDesconto;

INSERT INTO alugueis VALUES ( vAluguel, vClientes, vHospedagem, vDataInicio, vDataFinal, vPrecoTotal, vDesconto );

END$$

DELIMITER ; ;

Inserção abaixo

CALL NovoAluguel_24 ('1019', '1025', '8755', '2024-10-20', '2024-10-30',40,10);

1 resposta

Opa! Tudo bem? Pesquisei aqui e o erro 1136 em MySQL geralmente indica que a quantidade de valores fornecidos na instrução INSERT não corresponde à quantidade de colunas na tabela.

No seu caso, vamos analisar a procedure NovoAluguel_24 e a inserção que você está tentando fazer:

  1. Procedure NovoAluguel_24:

    • Você está inserindo os seguintes valores na tabela alugueis: vAluguel, vClientes, vHospedagem, vDataInicio, vDataFinal, vPrecoTotal, vDesconto.
    • O cálculo de vPrecoTotal e vPreci é feito corretamente, mas você não está utilizando vPreci no INSERT.
  2. Tabela alugueis:

    • É importante verificar quantas colunas a tabela alugueis tem e quais são elas. Você precisa ter certeza de que está fornecendo valores para todas as colunas esperadas ou especificar quais colunas você está preenchendo.

Sugestões para resolver o problema:

  1. Verifique a tabela:

    • Execute DESCRIBE alugueis; para ver a estrutura da tabela e quantas colunas existem.
  2. Ajuste o INSERT:

    • Se a tabela alugueis tem mais ou menos colunas do que você está tentando inserir, ajuste a lista de colunas no INSERT. Por exemplo, se você precisar incluir vPreci, faça assim:
      INSERT INTO alugueis (coluna1, coluna2, coluna3, coluna4, coluna5, coluna6, coluna7, vPreci) VALUES (vAluguel, vClientes, vHospedagem, vDataInicio, vDataFinal, vPrecoTotal, vDesconto, vPreci);
      
  3. Modifique o INSERT se necessário:

    • Caso vPreci não deva ser inserido, remova-o do seu código e ajuste a quantidade de valores.