PostgreSQL插入查询

时间:2011-11-09 19:04:43

标签: postgresql timestamp

我尝试向日志表插入一行,但它会抛出一条错误消息。 ><

log表结构如下:

no         integer  NOT NULL nextval('log_no_seq'::regclass)    
ip         character varying(50)    
country    character varying(10)    
region     character varying(10)    
city       character varying(50)    
postalCode character varying(10)    
taken      numeric  
date       date

和我的查询:

INSERT INTO log (ip,country,region,city,postalCode,taken,date) VALUES 
("24.24.24.24","US","NY","Binghamton","11111",1,"2011-11-09")

=> ERROR: column "postalcode" of relation "log" does not exist

第二次尝试查询:(没有邮政编码)

INSERT INTO log (ip,country,region,city,taken,date) VALUES 
("24.24.24.24","US","NY","11111",1,"2011-11-09")

=> ERROR: column "24.24.24.24" does not exist

我不知道自己做错了什么......

PostgreSQL没有日期时间类型? (2011-11-09 11:00:10)

3 个答案:

答案 0 :(得分:10)

尝试单引号(例如'2011-11-09')

答案 1 :(得分:5)

PostgreSQL有一个“日期时间”类型:timestamp。阅读manual here

如果您希望 ,那么双重""用于标识符。 @wildplasser建议你最好不要使用它们。

字符串文字用单引号''括起来。

首先阅读Lexical Structure一章。这是非常翔实的。 :)

答案 2 :(得分:2)

尝试以这种方式重写:

INSERT INTO log(ip,country,region,city,“postalCode”,take,date)VALUES ('24 .24.24.24' , 'US', 'NY', '宾厄姆顿', '11111',1, '2011-11-09');

当您使用列名称或保留字(例如“列”,“行”等)的混合大小写时,您必须使用双引号而不是值,您必须使用单引号正如您在示例中所看到的那样。