Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

eu não estou conseguindo ver o erro

  • Eu coloquei esses itens na minha tabela:

insert into tabela_de_vendedores (matricula,nome,percentual_comissao) values ('00234','João Geraldo da Fonseca', 0.10);

insert into tabela_de_vendedores (matricula,nome,percentual_comissao) values ('00235','Mário Almeida Silva', 0.08);

insert into tabela_de_vendedores (matricula,nome,percentual_comissao) values ('00236','Cláudia Morais', 0.08);

  • Porém, no exercicio está dizendo pra eu mudar o percentual_comissao da cláudia para 11% e estou colocando esse código:

update tabela_de_vendedores set percentual_comissao = 0.11 where matricula = '00236';

  • O que devo fazer?
5 respostas

Olá Jefferson, tudo bem? Esses três INSERTs foram realizados com sucesso ou deu algum erro? No caso o erro é apenas nesse comando de UPDATE:

update tabela_de_vendedores set percentual_comissao = 0.11 where matricula = '00236';

E qual a mensagem de erro que o MySQL exibe na parte de OUTPUT do Workbench? Também não consegui entender, o comando de UPDATE está correto. Fala pra gente qual o erro que o Workbench mostra, assim podemos te dar uma resposta mais exata!

Ola Jonilson, tudo sim. As inserts entraram tranquilamente, tanto que, se eu uso o select, elas mostram tranquilamente. o problema é só no comando:

update tabela_de_vendedores set percentual_comissao = 0.11 where matricula = '00236';

A mensagem que aparece no output é essa:

" # Time Action Message Duration / Fetch 0 1 11:49:53 update tabela_de_vendedores set percentual_comissao = 0.11 where matricula = '00236' Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 0.016 sec"

Agora sim Jefferson, já sei qual o problema, em algumas instalações do MySQL, ele deixa a opção de atualizações seguras habilitada, e acho que essa tabela tabela_de_vendedores não o campo matricula como chave primária. Assim você não pode atualizar ou excluir registros sem especificar uma chave na cláusula WHERE. Para resolver isso, execute o seguinte comando no Workbench:

SET SQL_SAFE_UPDATES = 0;

E depois tenta realizar a atualização:

update tabela_de_vendedores set percentual_comissao = 0.11 where matricula = '00236';

E fala pra gente se funcionou!

Funcionou!!! Obrigado, mas eu só tivese que usar esse set sql por conta de não ser chave primária?

solução!

Que legal, fico muito feliz por ajudar! Sim, é isso mesmo, como não tem nenhum campo como chave primária na tabela TABELA_DE_VENDEDORES, temos esse erro, se o campo matricula fosse primary key não teria esse erro. Se puder marcar esse tópico como solucionado seria legal, assim outras pessoas que tiverem o mesmo problema que você teve podem encontrar a solução fácil mente aqui!