如何使用postgreSQL增加表列

时间:2015-03-12 08:49:54

标签: postgresql

我想在ic_countries(plunet_english列)中添加一些新值,但我还想增加id(landid)。该表设置为唯一ID,但不是自动增量。

遗憾的是,我的方法在lastval()+1周围提供了一个未定义的错误。我试图添加一个从硬编码值开始递增的函数。即使这似乎也无法实现。

INSERT INTO ic_countries (landid, plunet_english)
SELECT lastval()+1, name
FROM country
WHERE name NOT IN 
    (
    SELECT plunet_english
    FROM ic_countries
    )

1 个答案:

答案 0 :(得分:1)

如果要在现有表中设置自动增量,请执行此操作

使用,获取字段landid的下一个数字 SELECT MAX(landid) + 1 FROM ic_countries如果100那么

创建序列

CREATE SEQUENCE seq_ic_countries_landid START WITH 100; 

为表

指定此序列
ALTER TABLE ic_countries ALTER COLUMN landid SET DEFAULT nextval('seq_ic_countries_landid');

现在你可以插入如下:

INSERT INTO ic_countries ( plunet_english)
SELECT  name --landid will be automatically increment
FROM country
WHERE name NOT IN 
    (
    SELECT plunet_english
    FROM ic_countries
    )