"error: column 'varying' does not exist" wenn kein column abgefragt wird

UPDATE table_name SET column_name = ARRAY['varying'] WHERE id = '123';
Error:
error: column "varying" does not exist
column_name data type: text[]

Ich hab das gleiche mit einem varchar(18) array gemacht, dort habe ich keine Probleme
Warum nimmt pSQL “varying” als column name während column_name der eigentliche name ist?

Darauf hin habe ich ein colum namens “varying” erstellt.
Nach ausführung der Query wurde die Value von column_name to NULL geändert während die Value von Column “varying” unverändert blieb.

Hast Du vielleicht doppelte Anführungszeichen verwendet? z.B. array["varying"]

Nein, ich habe jetzt “varying” als text gespeichert welcher nun später im Code zum Array transformiert wird. Das Problem besteht allerdings weiterhin.

Ich vermute Du zeigst uns nicht alles - die Fehlermeldung weißt jedenfalls ziemlich eindeutig daraufhin, dass Du irgendwo doppelte Anführungszeichen (") verwendest statt einfacher (')

Das Statement funktioniert so wie in Deiner Frage geschrieben jedenfalls problemlos:

Online Beispiel

error: column “aaa” does not exist
at Parser.parseErrorMessage (E:\Workspace\node_modules\pg-protocol\dist\parser.js:278:15)
at Parser.handlePacket (E:\Workspace\node_modules\pg-protocol\dist\parser.js:126:29)
at Parser.parse (E:\Workspace\node_modules\pg-protocol\dist\parser.js:39:38)
at Socket. (E:\Workspace\node_modules\pg-protocol\dist\index.js:10:42)
at Socket.emit (events.js:314:20)
at addChunk (_stream_readable.js:298:12)
at readableAddChunk (_stream_readable.js:273:9)
at Socket.Readable.push (_stream_readable.js:214:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23) {
length: 166,
severity: ‘ERROR’,
code: ‘42703’,
detail: undefined,
hint: undefined,
position: ‘31’,
internalPosition: undefined,
internalQuery: undefined,
where: undefined,
schema: undefined,
table: undefined,
column: undefined,
dataType: undefined,
constraint: undefined,
file: ‘d:\pginstaller_13.auto\postgres.windows-x64\src\backend\parser\parse_relation.c’,
line: ‘3514’,
routine: ‘errorMissingColumn’
}

.js Code:

const array = [‘aaa’];
pool.query(`UPDATE blacklists SET words = ARRAY[${array}] WHERE guildid = ‘${msg.guild.id}’`)

Hier ist der exacte code plus error

Da wird offensichtlich der Parameter komplett ohne Anführungszeichen gesendet. Das ist kein Postgres Problem sonder ein JavaScript Problem.

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Nachrichten mehr erlaubt.