Запрос Postgres не заполняет таблицу базы данных. Возможные ограничения вмешательства?

У меня есть таблица с именем pool_hashrate со столбцами: id (PK), hashrate, network_id (FK), pool_id (FK). Я хотел бы заполнить их запросом:

insert into pool_hashrate (
    hashrate, network_id, pool_id
)
select
    i+i::double precision, i, i
from generate_series(0, 15) AS i;

Таблицы были автоматически созданы через Hibernate. Фрагмент кода SQL от pgAdmin:

CREATE TABLE public.pool_hashrate
(
    id bigint NOT NULL DEFAULT nextval('pool_hashrate_id_seq'::regclass),
    hashrate double precision NOT NULL,
    network_id bigint NOT NULL,
    pool_id bigint NOT NULL,

    CONSTRAINT pool_hashrate_pkey PRIMARY KEY (id),
    CONSTRAINT fk52n7131wvbi6196idmf1wfb0e FOREIGN KEY (pool_id)
        REFERENCES public.pool_hashrate (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION,
    CONSTRAINT fkjph0cotxu5udghsbbgtpysv66 FOREIGN KEY (network_id)
        REFERENCES public.network_hashrate (id) MATCH SIMPLE
        ON UPDATE NO ACTION
        ON DELETE NO ACTION
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.pool_hashrate
    OWNER to postgres;

Могут ли ограничения быть проблемой? При выполнении запроса в pgAdmin я получаю сообщение rows affected -1.


РЕДАКТИРОВАТЬ

Я все время получаю ошибку Null value in column “network_id” violates not-null constraint when adding new item.. Почему туда добавляется null, если это должен быть i?


РЕДАКТИРОВАТЬ 2

Фактически, перед указанным выше запросом я выполняю 2 других запроса для заполнения network_hashrate и pool_hashrate. Вот эти запросы:

insert into network_hashrate (
    rep_date, hashrate
)
select
    current_timestamp - (s.a || ' hour')::interval,
    s.a::double precision
from generate_series(0, 15, 1) AS s(a);

insert into pool_def (
    name, date_from
)
select
    left(md5(random()::text), 10),
    current_timestamp - (s.a || ' hour')::interval
from generate_series(0, 15, 1) AS s(a);

Итак, чтобы ответить на ваш вопрос, да, у меня есть записи в network_hashrate. Думаю, проблем быть не должно?

network_id ссылается на public.network_hashrate (id), так есть ли у вас id в public.network_hashrate для каждого значения network_id, которое вы вставляете?
404 10.04.2018 17:58

Посмотрите мой Edit2, пожалуйста.

Makaroniasz 10.04.2018 18:05

Вы не устанавливаете значение id явно, так что кто знает, какие значения фактически используются в идентификаторе. Предполагаемые значения 0-15 - существуют ли идентификаторы для всех этих чисел в network_hashrate, включая ноль? Для подтверждения проверьте свои фактические данные в таблице.

404 10.04.2018 18:11

Идентификатора 0 нет. Они начинаются с 1-16.

Makaroniasz 10.04.2018 18:14

Так вот почему. Ваш код вставляет значения generate_series(0, 15). Если вы хотите сделать 1-16, сделайте generate_series(1, 16)

404 10.04.2018 18:15

Сэр, вы гений. Спасибо.

Makaroniasz 10.04.2018 18:17
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
6
52
0

Другие вопросы по теме