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

Migration Inserir dados

Professor, como estou usando banco de dados H2, tentei criar uma migration para inserir dados sempre ao iniciar o projeto. Criei com o nome V7insert-inTable-medicos.sql e dentro tentei criar assim insert into usuarios values("Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678","123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento");

Ao tentar rodar o projeto deu erro: 2023-06-21T11:10:47.994-03:00 ERROR 22659 --- [ restartedMain] o.f.core.internal.command.DbMigrate : Migration of schema "PUBLIC" to version "7 - insert-inTable-medicos" failed! Please restore backups and roll back database and code!

Message : Column count does not match; SQL statement: insert into usuarios values("Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678","123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento") [21002-214] Location : db/migration/V7__insert-inTable-medicos.sql (/home/thiago/projetos/Api_Java_Alura/target/classes/db/migration/V7__insert-inTable-medicos.sql) Line : 1 Statement : insert into usuarios values("Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678","123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento")

Pode tentar me ajudar ?

Grato.

6 respostas

Oi!

O insert está incompleto. Faltou passar o id e por isso deu erro ao executara migration.

Mesmo passando id e ativo como true, deu erro insert into usuarios values(1,"Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678", "123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento",true);

É bom também colocar as colunas, para garantir que está na ordem certa:

insert into usuarios(id, nome, email, telefone, crm, especialidade, logradouro, bairro, cep, cidade, uf, numero, complemento, ativo) values(1,"Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678", "123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento",true);

Se der erro, manda aqui o erro que apareceu no console.

Message : Column "NOME" not found; SQL statement: insert into usuarios(id, nome, email, telefone, crm, especialidade, logradouro, bairro, cep, cidade, uf, numero, complemento, ativo) values(1,"Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678", "123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento",true) [42122-214] Location : db/migration/V7__insert-inTable-medicos.sql (/home/thiago/projetos/Api_Java_Alura/target/classes/db/migration/V7__insert-inTable-medicos.sql) Line : 1 Statement : insert into usuarios(id, nome, email, telefone, crm, especialidade, logradouro, bairro, cep, cidade, uf, numero, complemento, ativo) values(1,"Rodrigo Ferreira","rodrigo.ferreira@voll.med","1112345678", "123456","ORTOPEDIA","rua um","bairro","12345678","Brasília","DF","1","complemento",true) Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ah sim, na verdade o insert não é na tabela de usuarios e sim na tabela de médicos.

Ajusta o insert então para a tabela correta

solução!

Na verdade o erro está nas aspas duplas. Valor em String tem que ser aspas simples. Ficou assim: insert into medicos(id, nome, email, telefone, crm, especialidade, logradouro, bairro, cep, cidade,uf,numero,complemento, ativo) values(1,'Rodrigo Ferreira','rodrigo.ferreira@voll.med','1112345678', '123456','ORTOPEDIA','rua um','bairro','12345678','Brasília', 'DF','1','complemento',true);