1
resposta

ERROR: syntax error

Quando executo o bloco de código listado abaixo:

SELECT * FROM aluno;

INSERT INTO aluno (
    nome,
    cpf,
    observacao,
    idade,
    dinheiro,
    altura,
    ativo,
    data_nascimento,
    hora_aula,
    matriculado_em,
)
VALUES (
    'Diogo',
    '12345678901',
    'Não há quem goste de dor, que a procure e a queira ter, simplesmente porque é dor...',
    35,
    100.50,
    1.81,
    TRUE,
    '1984-08-27',
    '17:30:00',
    '2020-02-08 12:32:45',
);

Recebo a seguinte mensagem de erro:

ERROR:  syntax error at or near ")"
LINE 12: )
         ^
SQL state: 42601
Character: 130
1 resposta

Oi, Marcio! Tudo certo por aí?

Em seu script SQL, existem vírgulas após o campo matriculado_em e o valor '2020-02-08 12:32:45', mas elas não são necessárias. Por esse motivo, quando tentamos rodar tal comando, o PotsgreSQL nos avisa que há um erro de sintaxe, isto é, de escrita.

Quando estamos inserindo novos registros em uma tabela, usamos a vírgula para separar os campos e os valores. No entanto, o último item não precisa conter uma vírgula, dado que ele está finalizando a sequência de informações.

Sendo assim, para que o seu comando funcione, precisamos remover essas duas vírgulas, chegando no seguinte resultado:

INSERT INTO aluno (
    nome,
    cpf,
    observacao,
    idade,
    dinheiro,
    altura,
    ativo,
    data_nascimento,
    hora_aula,
    matriculado_em
)
VALUES (
    'Diogo',
    '12345678901',
    'Não há quem goste de dor, que a procure e a queira ter, simplesmente porque é dor...',
    35,
    100.50,
    1.81,
    TRUE,
    '1984-08-27',
    '17:30:00',
    '2020-02-08 12:32:45'
);

Ao rodar o código acima, um novo dado será inserido à tabela aluno. Para visualizar seu estado atual, podemos utilizar o comando SELECT desta maneira:

SELECT * FROM aluno;

Marcio, espero ter ajudado! Caso surjam novas dúvidas, pode contar com a gente.

Um forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.