2015-03-04 9 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... 

क्षमा करें, मेरे पास पहले से ही "ट्रांसडेट" कॉलम है, यह क्यों नहीं कहा गया है?PostgreSQL sql कमांड त्रुटि कॉलम 'मौजूद नहीं है'

उत्तर

8

आपके कॉलम को "TransDate"transdate नहीं कहा जाता है। आप अपनी तालिका स्तंभ नाम के लिए दोहरे उद्धरण चिह्नों का उपयोग कर, जो उन्हें केस संवेदी बनाता बनाया है और आप दोहरे उद्धरण चिह्नों का उपयोग करना चाहिए सभी समय:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

:

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

अधिक एसक्यूएल पहचानकर्ता के बारे में विवरण पुस्तिका में हैं

सामान्य रूप से यह से बेहतर नहीं है डबल कोट्स का उपयोग करें - यह आपको लंबे समय तक बहुत कम परेशानी देगा।

+0

आपको बहुत धन्यवाद, तो मैं कोशिश करता हूं: dxtest_loadprofiletosale (आईडी, "ट्रांसडेट", "जारी करें", "ग्राहक संख्या") में प्रवेश करें (मूल्य, 1, '2015-03-04', '2015-01-01', 01); यह काम करता है! –

संबंधित मुद्दे