Maison > base de données > tutoriel mysql > Pourquoi ma requête Postgres DELETE échoue-t-elle avec « La colonne n'existe pas » ?

Pourquoi ma requête Postgres DELETE échoue-t-elle avec « La colonne n'existe pas » ?

DDD
Libérer: 2025-01-10 08:35:43
original
528 Les gens l'ont consulté

Why Does My Postgres DELETE Query Fail with

Erreur de requête Postgres DELETE : "La colonne n'existe pas"

Lors de l'exécution de l'instruction DELETE dans PostgreSQL, vous pouvez rencontrer l'erreur « ERREUR : la colonne « nom de colonne » n'existe pas ». Cette erreur déroutante se produit généralement lorsqu'une variable dans une condition de requête est entourée de guillemets doubles ("), que PostgreSQL interprète comme un nom de colonne au lieu d'une valeur.

Par exemple, la requête suivante génère l'erreur ci-dessus :

<code class="language-sql">delete from "Tasks" where id = "fc1f56b5-ff41-43ed-b27c-39eac9354323";</code>
Copier après la connexion

Le message d'erreur indique que PostgreSQL essaie de trouver une colonne nommée "fc1f56b5-ff41-43ed-b27c-39eac9354323" dans la table "Tâches". Cependant, cette colonne n'existe pas.

Le problème est que PostgreSQL traite tout ce qui est placé entre guillemets doubles (") comme identifiants, y compris les noms de tables, les noms de procédures et les noms de colonnes. Dans ce cas, en raison de l'utilisation de guillemets doubles, PostgreSQL traite incorrectement la valeur "fc1f56b5 - ff41-43ed-b27c-39eac9354323" est interprété comme un nom de colonne.

Pour résoudre ce problème, assurez-vous que les constantes de caractères sont placées entre guillemets simples (') au lieu de guillemets doubles. Les guillemets simples permettent à PostgreSQL de reconnaître correctement la valeur spécifiée comme une constante plutôt que comme un nom de colonne. La requête correcte doit être :

<code class="language-sql">delete from "Tasks" where id = 'fc1f56b5-ff41-43ed-b27c-39eac9354323';</code>
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal