在sql插入中违反了NULL约束

时间:2015-02-25 12:59:52

标签: postgresql

我有一张桌子(位置)如下所示。当我尝试插入项目时,我收到此错误:

ERROR:  null value in column "loc_id" violates not-null constraint
CONTEXT:  SQL statement "insert into Location VALUES ( lng , lat , alt ) RETURNING loc_id"

CREATE TABLE IF NOT EXISTS Location ( 
     longitude double precision check( longitude IS NULL OR -180.0 < longitude AND longitude <= 180.0 ),
     latitude double precision check( latitude IS NULL OR -90.0 <= latitude AND latitude <= 90.0 ),
     altitude double precision  default(0), 
     unique(longitude,latitude,altitude),
     loc_id integer  DEFAULT nextval('loc_seq') 
);

1 个答案:

答案 0 :(得分:1)

实际上我无法重现错误,它在我的环境中工作(PostgreSQL 9.0)。但如果您遇到此错误,我仍会建议您尝试以下操作:

如果您没有为表中的所有列提供值,请在INSERT子句中定义要插入值的列:

insert into Location (longitude, latitude, altitude) VALUES ( lng , lat , alt ) RETURNING loc_id

或者,您可以使用nextval显式添加序列中的下一个值。

insert into Location VALUES ( lng , lat , alt, nextval('loc_seq')) RETURNING loc_id