Maison > base de données > tutoriel mysql > Pourquoi est-ce que j'obtiens une erreur « La colonne « X » n'existe pas » dans mon instruction PostgreSQL INSERT ?

Pourquoi est-ce que j'obtiens une erreur « La colonne « X » n'existe pas » dans mon instruction PostgreSQL INSERT ?

DDD
Libérer: 2025-01-12 07:29:43
original
626 Les gens l'ont consulté

Erreur d'instruction PostgreSQL INSERT : "la colonne "X" n'existe pas"

Lors de l'insertion de données dans une table PostgreSQL, l'erreur "la colonne "X" n'existe pas" signifie souvent un problème avec les valeurs fournies dans l'instruction INSERT. Cela provient généralement de chaînes littérales mal formatées.

Le message d'erreur, tel qu'indiqué dans le problème d'origine, indique probablement un problème avec la colonne last_config_version. Les citations incorrectes de la valeur de la chaîne sont la cause la plus courante.

Le problème : citations de chaînes incorrectes

PostgreSQL utilise des guillemets simples (') pour délimiter les chaînes littérales. L'utilisation de guillemets doubles (") traite la chaîne comme un identifiant de colonne, ce qui entraîne l'erreur « la colonne « X » n'existe pas » si cette chaîne n'est pas un nom de colonne réel.

Solution 1 : Corriger les citations de chaînes

La bonne façon d'insérer la valeur last_config_version est de la mettre entre guillemets simples :

<code class="language-sql">INSERT INTO config_change_log (last_config_version, is_done, change_description)
VALUES ('5837-2016-08-24_09-12-22', false, '{ ''key'':''value''}');</code>
Copier après la connexion

Notez l'utilisation de guillemets simples autour de la valeur last_config_version. De plus, dans la chaîne de type change_description JSON, les guillemets simples sont échappés en les doublant ('').

Solution 2 : Gestion des guillemets uniques dans les données

Si vos données nécessitent des guillemets simples, vous devez les échapper en les doublant. Par exemple :

<code class="language-sql">INSERT INTO config_change_log (last_config_version, is_done, change_description)
VALUES ('5837-2016-08-24_09-12-22', false, '{ "key":"value"}');</code>
Copier après la connexion

Cela suppose que change_description est destiné à contenir des données JSON et que vous utilisez des guillemets doubles pour les clés et les valeurs dans la chaîne JSON, ce qui est une pratique JSON standard. Si ce n'est pas JSON, ajustez en conséquence en utilisant l'échappement approprié pour le type de données.

"Why

En citant correctement les littéraux de chaîne et en échappant les guillemets simples si nécessaire, vos instructions INSERT s'exécuteront avec succès, évitant ainsi l'erreur « la colonne « X » n'existe pas ». Vérifiez toujours votre syntaxe, en particulier autour des valeurs de chaîne, pour éviter ce problème courant de PostgreSQL.

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