l'instruction sql d'erreur: la colonne “ .. n'existe pas”
Im essayant de postgres console cette commande:
select sim.id as idsim,
num.id as idnum
from main_sim sim
left join main_number num on (FK_Numbers_id=num.id);
et j'ai eu cette réponse:
ERREUR: la colonne "fk_numbers_id" n'existe pas LIGNE 1: ...m de main_sim sim left join main_number num sur (FK_Numbers...
mais si j'ai simplement vérifier mon tableau avec:
dbMobile=# \d main_sim
id | integer | not null default
Iccid | character varying(19) | not null
...
FK_Device_id | integer |
FK_Numbers_id | integer |
Indexes:
"main_sim_pkey" PRIMARY KEY, btree (id)
"main_sim_FK_Numbers_id_key" UNIQUE, btree ("FK_Numbers_id")
"main_sim_Iccid_key" UNIQUE, btree ("Iccid")
"main_sim_FK_Device_id" btree ("FK_Device_id")
Foreign-key constraints:
"FK_Device_id_refs_id_480a73d1" FOREIGN KEY ("FK_Device_id") REFERENCES main_device(id) DEFERRABLE INITIALLY DEFERRED
"FK_Numbers_id_refs_id_380cb036" FOREIGN KEY ("FK_Numbers_id") REFERENCES main_number(id) DEFERRABLE INITIALLY DEFERRED
...comme nous pouvons le voir la colonne existe.
probablement c'est une erreur de syntaxe, mais je ne suis pas en mesure de voir ce que...
toute aide sera be apprécié.
Alessio
- Avez-vous essayé
sim.FK_Numbers_id
au lieu de simplementFK_Numbers_id
? - Essayez de taper FK_Numbers_id entre guillemets, comme "FK_Numbers_id". Un conseil: n'utilisez jamais de mélange de cas en sql.
Vous devez vous connecter pour publier un commentaire.
Non, la colonne
FK_Numbers_id
n'existe pas, seulement une colonne"FK_Numbers_id"
existeApparemment vous avez créé la table à l'aide de guillemets doubles et à cet effet, tous les noms de colonne sont pas sensibles à la casse et vous devez utiliser des guillemets tout le temps:
Pour récapituler ce qui est déjà documenté dans le manuel:
La colonne
foo
etFOO
sont identiques, les colonnes"foo"
et"FOO"
ne le sont pas.