Maison >base de données >tutoriel mysql >Pourquoi mon instruction PostgreSQL INSERT échoue-t-elle avec « ERREUR : la colonne « user2 » n'existe pas » ?

Pourquoi mon instruction PostgreSQL INSERT échoue-t-elle avec « ERREUR : la colonne « user2 » n'existe pas » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-30 22:58:10587parcourir

Why Does My PostgreSQL INSERT Statement Fail with

Impossible d'insérer des données : erreur "ERREUR : la colonne "valeur" n'existe pas"

Lors de la tentative d'insertion de données dans le fichier "utilisateurs " à l'aide de la requête suivante :

INSERT INTO users (user_name, name, password,email) 
    VALUES ("user2", "first last", "password1", "[email protected]");

les utilisateurs rencontrent un message d'erreur indiquant : "ERREUR : la colonne "utilisateur2" ne fonctionne pas exister." Cette erreur indique que la colonne spécifiée dans la requête ("user2") ne correspond à aucune colonne existante dans la table "users".

En examinant le schéma de la table, nous remarquons que la colonne "user_name" est définie comme "caractère variable (50)", ce qui signifie qu'il accepte les données textuelles. Cependant, dans notre requête, nous essayons d'insérer la chaîne "user2" sans la mettre entre guillemets simples. C'est là que l'erreur survient.

Corriger la requête à l'aide de guillemets simples :

Selon la convention PostgreSQL, les constantes de caractères nécessitent que des guillemets simples soient placés entre guillemets simples. Par conséquent, la requête corrigée devrait être :

INSERT INTO users(user_name, name, password,email) VALUES ('user2','first last','password1', '[email protected]' );

En mettant la valeur "user2" entre guillemets simples, nous indiquons explicitement à PostgreSQL qu'il s'agit d'une constante de caractère et non d'un nom de colonne.

Notes supplémentaires :

  • Référez-vous à la documentation PostgreSQL pour plus de précisions sur les constantes de caractères : postgresql.org/docs/current/static/datatype-character.html
  • Faites preuve de prudence lorsque vous utilisez des guillemets doubles avec PostgreSQL, car ils sont généralement réservés aux identifiants (par exemple, les noms de tables, les noms de colonnes) . L'utilisation de guillemets doubles pour les constantes de caractères peut entraîner des erreurs inattendues.

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!

Déclaration:
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