sql的新手,如何将列值插入新列?

时间:2013-05-16 17:25:17

标签: sql postgresql insert insert-select

我有什么:

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中有很多非空的变量,所以这就是那些空值,我想。我认为既然我指定了我插入值的列,那就无所谓......?

我迷路了。帮助赞赏!

1 个答案:

答案 0 :(得分:3)

您想更新表格,而不是插入新行。

update countryb set gnppercap = gnp/population

暂且不说:您可能不希望将计算值存储在单独的列中。如果你更新gnp或人口会怎么样?您的gnppercap列将不准确。