gpt4 book ai didi

mysql - 外键 BIGSERIAL NULL Postgres

转载 作者:行者123 更新时间:2023-11-29 16:05:05 24 4
gpt4 key购买 nike

我无法在 POSTGRES 数据库中插入记录,我希望外键为空。

我的 table :

CREATE TABLE sad_avaliado (
id BIGSERIAL NOT NULL,
tenant_id INT8 NOT NULL,
funcionario_id BIGSERIAL NOT NULL,
epoca_id BIGSERIAL NOT NULL,
cca_id BIGSERIAL,
avaliador_id BIGSERIAL NOT NULL,
apagado boolean NOT NULL,
PRIMARY KEY (id)
);
alter table sad_avaliado add constraint sad_funcionario_fkey foreign key (funcionario_id) references sad_funcionario;
alter table sad_avaliado add constraint sad_epoca_fkey foreign key (epoca_id) references sad_epoca;
alter table sad_avaliado add constraint sad_cca_fkey foreign key (cca_id) references sad_cca;
alter table sad_avaliado add constraint sad_avaliador_fkey foreign key (avaliador_id) references sad_avaliador;

我的 SQL 插入:

INSERT INTO public.sad_avaliado(
id, tenant_id, funcionario_id, epoca_id, cca_id, avaliador_id, apagado)
VALUES (1, 1, 1, 1, null, 1, false);

我的错误:

ERROR:  null value in column "cca_id" violates not-null constraint

最佳答案

BIGSERIAL 的外键引用应使用 BIGINT:

CREATE TABLE sad_avaliado (
id BIGSERIAL NOT NULL,
tenant_id INT8 NOT NULL,
funcionario_id BIGINT NOT NULL,
epoca_id BIGINT NOT NULL,
cca_id BIGINT,
avaliador_id BIGINT NOT NULL,
apagado boolean NOT NULL,
PRIMARY KEY (id)
);

我认为这是外键引用应与主键具有相同类型这一概念的一个异常(exception)。我的意思是,底层类型是相同的,但是BIGSERIAL用于指定它是自动递增的(其他数据库使用单独的关键字,例如auto_increment身份)。

关于mysql - 外键 BIGSERIAL NULL Postgres,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55823485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com