我有什么:
ALTER TABLE countryb
ADD gnppercap real
;
INSERT INTO countryb (gnppercap)
SELECT gnp/population
FROM countryb
;
我成功创建了列“gnppercap
”,现在我想用变量填充每一行的值。新变量是gnp和1 / population的乘积,变量gnp和population已经在我正在改变的表中, countryb 。
这是错误:
ERROR: null value in column "code" violates not-null constraint
SQL state: 23502
Detail: Failing row contains (null, null, null, null, null, null, null, null, null, null, null, >null, null, null, null, 0.000263028).
我知道这个表,countryb中有很多非空的变量,所以这就是那些空值,我想。我认为既然我指定了我插入值的列,那就无所谓......?
我迷路了。帮助赞赏!
答案 0 :(得分:3)
您想更新表格,而不是插入新行。
update countryb set gnppercap = gnp/population
暂且不说:您可能不希望将计算值存储在单独的列中。如果你更新gnp或人口会怎么样?您的gnppercap列将不准确。