Table "public.user_tests"
Column | Type | Collation | Nullable | Default
---------+-----------------------------+-----------+----------+----------------------------------------
id | integer | | not null | nextval('user_tests_id_seq'::regclass)
tg_id | bigint | | |
test_id | character varying(32) | | |
date | timestamp without time zone | | |
service | character varying(16) | | |
Indexes:
"user_tests_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
"user_tests_test_id_fkey" FOREIGN KEY (test_id) REFERENCES tests(id)
"user_tests_tg_id_fkey" FOREIGN KEY (tg_id) REFERENCES users(tg_id) ON DELETE CASCADE
Referenced by:
TABLE "shares" CONSTRAINT "shares_usertest_id_fkey" FOREIGN KEY (usertest_id) REFERENCES user_tests(id)
И
Table "public.tests"
Column | Type | Collation | Nullable | Default
------------+-----------------------------+-----------+----------+---------
id | character varying(32) | | not null |
service | character varying(16) | | not null |
date | timestamp without time zone | | |
tasks | json | | |
spent_time | double precision | | |
Indexes:
"tests_pkey" PRIMARY KEY, btree (id, service)
"tests_id_key" UNIQUE CONSTRAINT, btree (id)
Referenced by:
TABLE "partner_tests" CONSTRAINT "partner_tests_test_id_fkey" FOREIGN KEY (test_id) REFERENCES tests(id)
TABLE "user_tests" CONSTRAINT "user_tests_test_id_fkey" FOREIGN KEY (test_id) REFERENCES tests(id)
Мне нужно изменить значения tests.id на новые. Как сделать так, чтобы в таблице user_tests(test_id) эти значения изменялись автоматически?
Убрать FK (или сделать их deferred), навесить триггер на user_tests, который будет апдейтить id в ней при изменении id в tests, после завершения апдейтов вернуть FK обратно
Обсуждают сегодня