2015-03-04 27 views
5
dxdb=> \d dxtest_loadprofiletosale 
          Table "public.dxtest_loadprofiletosale" 
    Column | Type |        Modifiers        
-------------+----------+----------------------------------------------------------------------- 
id   | integer | not null default nextval('dxtest_loadprofiletosale_id_seq'::regclass) 
TransDate | date  | 
IssueDate | date  | 
CustomerNum | smallint | not null 
Indexes: 
    "dxtest_loadprofiletosale_pkey" PRIMARY KEY, btree (id) 

dxdb=> INSERT INTO dxtest_loadprofiletosale(id, TransDate, IssueDate, CustomerNum) VALUES(1, '2015-03-04','2015-01-01',01); 
ERROR: column "transdate" of relation "dxtest_loadprofiletosale" does not exist 
LINE 1: INSERT INTO dxtest_loadprofiletosale(id, TransDate, IssueDat... 

scusami, ho già la colonna "transdate", perché ha detto che non esiste?La colonna di errore del comando sql PostgreSQL 'non esiste'

risposta

8

La colonna è denominata "TransDate" non transdate. È stato creato il tavolo con le virgolette doppie per i nomi delle colonne, che li rende tra maiuscole e minuscole ed è necessario utilizzare le virgolette doppie tutto il tempo:

INSERT INTO dxtest_loadprofiletosale 
    (id, "TransDate", "IssueDate", "CustomerNum") 
VALUES 
    (1, '2015-03-04','2015-01-01',01); 

Maggiori informazioni su identificatori SQL sono nel manuale:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

In generale è preferibile mai usare virgolette doppie: a lungo andare si avranno meno problemi.

+0

grazie mille, quindi provo: INSERISCI IN dxtest_loadprofiletosale (id, "TransDate", "IssueDate", "CustomerNum") VALUES (1, '2015-03-04', '2015-01-01', 01); funziona! –

Problemi correlati