gpt4 book ai didi

PostgreSQL:非空违规:7 错误:列 "id"中的空值违反非空约束

转载 作者:行者123 更新时间:2023-11-29 13:41:11 25 4
gpt4 key购买 nike

Doctrine

     /**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @var string $entity
*
* @ORM\Column(name="entity", type="string", length=255)
*/
protected $entity;

/**
* @var string $alias
*
* @ORM\Column(name="alias", type="string", length=255)
*/
protected $alias;

acme_search_item 表

acme_test=# \d acme_search_item;
Table "public.acme_search_item"
Column | Type | Collation | Nullable | Default
------------+--------------------------------+-----------+----------+-------------------------
id | integer | | not null |
entity | character varying(255) | | not null |
alias | character varying(255) | | not null |
record_id | integer | | |
title | character varying(255) | | | NULL::character varying
weight | numeric(21,8) | | not null | '1'::numeric
changed | boolean | | not null |
created_at | timestamp(0) without time zone | | not null |
updated_at | timestamp(0) without time zone | | not null |
Indexes:
"acme_search_item_pkey" PRIMARY KEY, btree (id)
"idx_entity" UNIQUE, btree (entity, record_id)
"idx_alias" btree (alias)
"idx_entities" btree (entity)
Referenced by:
TABLE "acme_search_index_datetime" CONSTRAINT "fk_651ddb126f525e" FOREIGN KEY (item_id) REFERENCES acme_search_item(id) ON DELETE CASCADE
TABLE "acme_search_index_text" CONSTRAINT "fk_67665f0c126f525e" FOREIGN KEY (item_id) REFERENCES acme_search_item(id)
TABLE "acme_search_index_integer" CONSTRAINT "fk_c52b2786126f525e" FOREIGN KEY (item_id) REFERENCES acme_search_item(id) ON DELETE CASCADE
TABLE "acme_search_index_decimal" CONSTRAINT "fk_c5d93f1e126f525e" FOREIGN KEY (item_id) REFERENCES acme_search_item(id) ON DELETE CASCADE

acme_search_item_id_seq

acme_test=# \d acme_search_item_id_seq
Sequence "public.acme_search_item_id_seq"
Type | Start | Minimum | Maximum | Increment | Cycles? | Cache
--------+-------+---------+---------------------+-----------+---------+-------
bigint | 1 | 1 | 9223372036854775807 | 1 | no | 1

SQL

acme_test=# INSERT INTO acme_search_item (id,entity,ALIAS,record_id,title,weight,changed,created_at,updated_at) VALUES (DEFAULT,'Pintushi\\Bundle\\OrganizationBundle\\Entity\\Organization','acme_organization','1','tt','1','0','2019-03-18 17:15:57','2019-03-18 17:15:57');
ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, Acme\\Bundle\\OrganizationBundle\\Entity\\Organization, acme_organization, 1, tt, 1.00000000, f, 2019-03-18 17:15:57, 2019-03-18 17:15:57).

acme_test=# INSERT INTO acme_search_item (id,entity,ALIAS,record_id,title,weight,changed,created_at,updated_at) VALUES (1,'Acme\\Bundle\\OrganizationBundle\\Entity\\Organization','acme_organization','1','tt','1','0','2019-03-18 17:15:57','2019-03-18 17:15:57');
INSERT 0 1

编辑

acme_test=# INSERT INTO acme_search_item (entity,ALIAS,record_id,title,weight,changed,created_at,updated_at) VALUES ('Acme\\Bundle\\OrganizationBundle\\Entity\\Organization','acme_organization','1','tt','1','0','2019-03-18 17:15:57','2019-03-18 17:15:57');;
ERROR: null value in column "id" violates not-null constraint
DETAIL: Failing row contains (null, Acme\\Bundle\\OrganizationBundle\\Entity\\Organization, acme_organization, 1, tt, 1.00000000, f, 2019-03-18 17:15:57, 2019-03-18 17:15:57).

问题

我使用了 DEFAULT 关键字,它应该是下一个 id,但是如您所见,它是错误的。我正在使用 PostgreSQL 10.4。我不知何故发现没有定义 extval('*_id_seq'::regclass) 。我用doctrine定义上面的数据库结构为文档identifier-generation-strategies说。

最佳答案

确保您的 id 列具有默认值:

ALTER TABLE acme_search_item
ALTER COLUMN id SET DEFAULT nextval('acme_search_item_id_seq');

您可以在信息架构表中查看当前默认值:

SELECT  column_name
, column_default
FROM information_schema.columns
WHERE table_name = 'acme_search_item'
ORDER BY
ordinal_position;

关于PostgreSQL:非空违规:7 错误:列 "id"中的空值违反非空约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55222800/

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