Как обновить и установить unit_id в NULL, идентификатор устройства — внешний ключ из таблицы модулей

Как обновить и установить для unit_id значение NULL, идентификатор устройства является внешним ключом, и мне нужно установить значение NULL

CREATE TABLE troops
(
id serial NOT NULL,
unit_id integer,
type integer NOT NULL,
level integer NOT NULL,
CONSTRAINT troops_pkey PRIMARY KEY (id),
CONSTRAINT troops_unit_id_fkey FOREIGN KEY (unit_id)
REFERENCES units (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
WITH (
OIDS=FALSE
);

Я попытался обновить войска и установить для unit_id значение NULL (я поставил NULL, а не 0 в выражении pqxx в C ++), но я получаю ошибку как

 insert or update on table "troops" violates foreign key constraint "troops_unit_id_fkey"DETAIL:  Key (unit_id)=(0) is not present in table "units".

Когда я пытаюсь из pgadmin, я могу установить для unit_id значение NULL в войсках, но pqxx (из кода c ++, который я пытаюсь обновить) преобразует NULL в 0, как это решить?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]