Salut, j'essaie d'insérer dans un testeur de table3 il échoue lorsque j'utilise la syntaxe
insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');
mais
insert into tester3 values ( 1, 'jishnu1');
fonctionne bien.
mydb=# CREATE TABLE tester3
mydb-# (
mydb(# "UN0" integer,
mydb(# "UN1" VARCHAR(40)
mydb(# );
CREATE TABLE
mydb=# insert into tester3 (UN0, UN1) values ( 1, 'jishnu1');
ERROR: column "un0" of relation "tester3" does not exist
mydb=# \d tester3
Table "public.tester3"
Column | Type | Modifiers
--------+-----------------------+-----------
UN0 | integer |
UN1 | character varying(40) |
Je pense que je manque quelque chose de très trivial, j'ai essayé d'autres noms de colonnes, certains fonctionnent bien et certains ne fonctionnent pas. Je suis confus. PostgreSQL a-t-il une restriction dans les noms de colonnes pour lesquels fonctionne la 1ère syntaxe de la requête d'insertion?
Modifier:
Et comme Frank Heikens a souligné les autres noms de colonnes qui fonctionnaient sans guillemets où en minuscules .
La colonne en minuscules est la norme dans PostgreSQL et fonctionne également sans guillemets
Si vous définissez les colonnes avec des guillemets doubles, vous devez les utiliser lorsque vous vous référez à la colonne:
insert into tester3 ("UN0", "UN1")
values ( 1, 'jishnu1');
Je vous suggère de supprimer les guillemets doubles des noms de colonne dans le CREATE TABLE
déclaration.
essayez ceci en utilisant des guillemets doubles pour les noms de vos colonnes
insert into tester3 ("UN0", "UN1") values ( 1, 'jishnu1');