4
respostas

error: syntax error at or near "?" ao usar o PostgreSQL

Como já tinha o Postgre na minha máquina, tentei fazer usando esse banco.

Tudo funciona normalmente, exceto quando faço os comandos usando o "?", como mostrado abaixo:

    const sql = 'UPDATE ATENDIMENTOS SET ? WHERE ID=?'

    con.query(sql, [valores, id], (erro, resultados) => {
        console.log(erro)
        if(erro) {
            res.status(400).json(erro)
        } else {
            res.status(200).json(resultados)
        }
    })

No INSERT também não funcionou.

Alguém sabe como posso fazer para conseguir usar os valores que estou recebendo?

4 respostas

Oi, Lucas, tudo bem?

Você está utilizando o pacote do postgresql para o node ao invés do mysql? E troque o símbolo de ? por $. Testa e me fala se deu certo!

Testei e continuou o mesmo erro :(

Segue o retorno completo

error: syntax error at or near "$" at Parser.parseErrorMessage (C:\Users\Documents\GitHub\node2\node_modules\pg-protocol\dist\parser.js:278:15) at Parser.handlePacket (C:\Users\Documents\GitHub\node2\node_modules\pg-protocol\dist\parser.js:126:29) at Parser.parse (C:\Users\Documents\GitHub\node2\node_modules\pg-protocol\dist\parser.js:39:38) at Socket. (C:\Users\Documents\GitHub\node2\node_modules\pg-protocol\dist\index.js:10:42) at Socket.emit (events.js:315:20) at addChunk (streamreadable.js:295:12) at readableAddChunk (streamreadable.js:271:9) at Socket.Readable.push (streamreadable.js:212:10) at TCP.onStreamRead (internal/stream_base_commons.js:186:23) { length: 90, severity: 'ERROR', code: '42601', detail: undefined, hint: undefined, position: '25', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'scan.l', line: '1180', routine: 'scanner_yyerror' }

Tentei usar no insert e ele retornou esse erro:

Error: Query values must be an array

Oi, Lucas, tudo bem?

Você intalou o pacote postgres para Node? Para que você faça a substituição do MySQL pelo PG vai precisar se apoiar na documentação do Postgres por não ser a exata mesma sintaxe do MySQL.

Um pacote de postgres que você pode utilizar: https://node-postgres.com/