получилось) Пример упростил.
Таблица 1 Столбец 1 ссылается на Таблица 2 Столбец 2. Таблица 2 Столбец 1 ссылается на Таблица 1 в Столбец 2. Если запутались, то всё просто - перекрестный внешний ключ друг на друга.
Как вставить две строки, которые ссылаются друг на друга? При первом инсерте сразу падает ошибка ключа.
2 инсерта в одном комменте может быть?
Два инсерта может быть. Но первый то всегда ошибкой падает. В mysql я бы отключил проверку ключа внутри сессии, а тут хз
Да нет, мы как раз спросим, как так получилось.
Ну вот. Есть юзер он создает скажем групповой кабинет для группы людей. Все люди должны быть привязаны к какому то групповому кабинету. Но для истории нужно оставить создателя кабинета (хозяина кароче). Получается юзер ссылается на кабинет, а кабинет на юзера
Люди обычно не должны (не обязаны) быть привязаны к какому-либо кабинету. Есть роли, которым кабинет не нужэн. Более того, часто люди могут быть привязаны к нескольким кабинетам — так что проще сделать связь многие-ко-многим в эту сторону.
Вообще, если возникла проблема курицы и яйца — всегда полезно подумать, как оно начиналось. А начиналось оно так, что директор, утверждённый собранием учредителей — ужэ есть, а кабинета (договора аренды) — у него ещё нет, он только бежыт его заключать с уставным капиталом в зубах.
WITH i1 AS ( INSERT INTO таблица1("столбец1") VALUES (1) ) INSERT INTO таблица2("столбец2") VALUES (1); Но, вообще, такие модели редко бывают нужны, в самом деле...
Первая вставка с null в FK, вторая вставка с не null в FK, затем UPDATE первой строки, установка FK в PK второй строки.
Спасибо, уже решили задачу с помощью defered
Обсуждают сегодня