Maison > base de données > tutoriel mysql > Pourquoi ma requête PostgreSQL DELETE échoue-t-elle avec « La colonne n'existe pas » lors de l'utilisation de IN (Liste) ?

Pourquoi ma requête PostgreSQL DELETE échoue-t-elle avec « La colonne n'existe pas » lors de l'utilisation de IN (Liste) ?

Mary-Kate Olsen
Libérer: 2024-12-17 02:59:25
original
272 Les gens l'ont consulté

Why Does My PostgreSQL DELETE Query Fail with

Postgres : Erreur de requête "La colonne n'existe pas" avec WHERE IN (Liste)

Dans PostgreSQL, la requête

DELETE FROM user_job_titles WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
)
Copier après la connexion

échoue avec une erreur "erreur : la colonne [valeur] n'existe pas". En effet :

Guillemets doubles et échappement

Dans PostgreSQL, les guillemets doubles sont utilisés comme caractères d'échappement pour faire référence aux noms de tables et de colonnes. Lorsqu'ils sont utilisés par inadvertance avec des chaînes littérales, ils peuvent conduire à une syntaxe incorrecte. Dans la requête donnée, les valeurs de la liste IN sont placées entre guillemets doubles, ce qui oblige PostgreSQL à les interpréter comme des noms de colonnes plutôt que comme des constantes de chaîne.

Solution : mettre les valeurs entre guillemets simples

À résolvez le problème, placez les valeurs entre guillemets simples :

DELETE FROM user_job_titles WHERE id IN (
'c836d018-1d12-4507-a268-a4d80d6d3f54',
'd0961a90-7d31-4c4c-9c1b-671115e3d833',
'62dda420-6e62-4017-b41d-205c0aa82ead'
);
Copier après la connexion

De cette façon, PostgreSQL interprète les valeurs comme des constantes de chaîne et les compare correctement avec la colonne id de la table user_job_titles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal