#postgresql #npgsql
#postgresql #npgsql
Вопрос:
Первичный ключ Postgresql не увеличивается автоматически, даже если указано обозначение serial это мой сценарий создания таблицы
CREATE TABLE public."Medication" (
"Id" serial NOT NULL,
"ResidentId" int4 NOT NULL,
"PharmacyId" int4 NULL,
"PhysicianId" int4 NULL,
"ReleasedQty" float8 NOT NULL DEFAULT '0'::double precision,
"PRNEffectiveTime" int4 NULL,
"IsSTO" bool NOT NULL DEFAULT false,
"IsPendingOrder" bool NOT NULL DEFAULT false,
"IsPsychotropic" bool NOT NULL DEFAULT false,
"IsINRRequired" bool NOT NULL DEFAULT false,
"eSignature" varchar NULL,
"eSignatureDate" timestamp NULL,
"PhysicianId_X" int4 NULL,
"IsWitnessSigReq" bool NULL,
"IsInjection" bool NULL,
"AdministerByRole" varchar NULL,
"AdministerByUser" varchar NULL,
"AlfId" int4 NOT NULL,
CONSTRAINT "Medication_pkey" PRIMARY KEY ("Id", "AlfId")
)
PARTITION BY RANGE ("AlfId");
значение Id всегда остается равным нулю
Комментарии:
1. Тогда вы, по-видимому, явно вставляете
0
в этот столбец.2. Не имеет отношения к вашей проблеме, но: вам действительно следует избегать этих страшных идентификаторов в кавычках. Они доставляют гораздо больше проблем, чем того стоят. wiki.postgresql.org/wiki /…
3. Я использую .net core для вставки данных, а затем это происходит
4. позвольте мне проверить, содержит ли он нулевое значение явно
5. @a_horse_with_no_name пожалуйста, отправьте комментарий со значением 0 в качестве ответа
Ответ №1:
Мой запрос вставлял явное значение 0, и это происходило в .net core с объектом Medicine, содержащим нулевой идентификатор. когда в моем классе я указал Id в качестве столбца идентификатора, это исправлено
Table("Medication")]
public partial class Medication
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
Я не добавлял [DatabaseGenerated(DatabaseGeneratedOption .Identity)] и вот почему это происходило