172 похожих чатов

Здравствуйте. У меня такой вопрос. Есть две таблицы:

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) эти значения изменялись автоматически?

1 ответов

12 просмотров

Убрать FK (или сделать их deferred), навесить триггер на user_tests, который будет апдейтить id в ней при изменении id в tests, после завершения апдейтов вернуть FK обратно

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта