我是Postgres SQL的新手,非常感谢您提供一些帮助。我有一个名为actors的大型数据集,包括一个主键(nconst),演员的名字,他们的出生和死亡年份。我想在此数据集中插入一个actor的新行,这将使下一个nconst可用。
因此我运行了我的代码
INSERT INTO actors (name, birth_year, death_year)
VALUES (‘Jo Jo Slim’ ,1962, NULL);
但是,我在列中返回错误说明空值,'nconst'违反了非空约束。
由于数据集很大,我无法知道下一个可用的nconst是什么。因此,我如何添加这一行数据并告诉Postgres SQL只生成下一个可用的nconst?非常感谢你。
下面是我的数据集的一行。
nconst | name | birth_year | death_year
" nm0000001 ", "Miss Jerry " , " 1940" , "2000"
答案 0 :(得分:1)
将主键定义为serial
值:
create table actors (
actorid serial primary key,
name varchar(255),
. . .
);
然后插入表格 - 除了id:
之外的所有列INSERT INTO actors (name, birth_year, death_year)
VALUES ('Jo Jo Slim', 1962, NULL);
值为整数,而不是字符串。但这是主键的不错选择。
我建议将列命名为actorid
,以便了解其含义。 nconst
并不意味着什么,至少对我而言。