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>
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>
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!