我有一张桌子(位置)如下所示。当我尝试插入项目时,我收到此错误:
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')
);
答案 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