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

Извините, у меня уже есть столбец «transdate», почему он сказал, что не существует?Ошибка столбца ошибки в PostgreSQL sql 'не существует'

ответ

8

Ваша колонна называется "TransDate" не transdate. Вы создали таблицу, используя двойные кавычки для имен столбцов, что делает их чувствительно к регистру, и вы должны использовать двойные кавычки все время:

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

Более подробную информацию о идентификаторов SQL в руководстве:
http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

В общем, лучше всего никогда не использовать двойные кавычки - это даст вам гораздо меньше проблем в долгосрочной перспективе.

+0

Большое спасибо, тогда я стараюсь: INSERT INTO dxtest_loadprofiletosale (id, "TransDate", "IssueDate", "CustomerNum") VALUES (1, '2015-03-04', '2015-01-01', 01); он работает! –

Смежные вопросы