Gostaria de entender por que os preços não deram certo, a função random() gera um valor entre 0 e 1, não estou entendo como é possivel random()*80 gerar um valor tão grande (quando deveria gerar 0 a 80) e também alguns valores negativos.
Gostaria de entender por que os preços não deram certo, a função random() gera um valor entre 0 e 1, não estou entendo como é possivel random()*80 gerar um valor tão grande (quando deveria gerar 0 a 80) e também alguns valores negativos.
cheguei nos valores dentro do intervalo mas não com as casas decimais
Oii, Guilherme! Como você está?
A função RANDOM()
no SQLite não gera um valor entre 0 e 1. Ele gera um valor inteiro aleatório entre -9223372036854775808
e +9223372036854775807
. Então, ao usar RANDOM() * 80
, o retorno com valores serão grandes ou negativos. Leia mais no link abaixo:
A página abrirá em inglês, para fazer a leitura em português, clique com o botão direito do mouse em qualquer canto da página e escolha a opção traduzir para o português.
E na segunda imagem, você está no caminho certo, é isso mesmo! Sobre não estar retornando um valor decimal, é possível que a tabela não esteja no tipo decimal. Então, recomendo que altere o tipo para um que aceite valores decimais com o comando:
ALTER TABLE produtos
MODIFY COLUMN preco DECIMAL(10, 2);
Espero ter ajudado. Conte sempre conosco aqui no fórum.
Bons estudos e até mais!