Member 13843812 Ответов: 1

Как вставить значения, если обе таблицы имеют ограничения первичного и внешнего ключей?


У меня есть две таблицы а,Б. таблица имеет столбец col1-как первичный ключ и таблица B имеет столбец
как col2 в качестве первичного ключа.col1 ссылки на col2 и col2 ссылки на col1(означает, что оба зависят друг от друга).
Как я могу вставить записи в таблицу A(col1)???

Что я уже пробовал:

Я попробовал отключить одно ограничение.

1 Ответов

Рейтинг:
1

OriginalGriff

Если хотя бы один из столбцов не может содержать нулевые значения, вы не можете вводить данные ни в одну из таблиц без особых проблем: вы можете сделать это, создав постоянную "пустую" запись в обеих таблицах и указав на нее внешний ключ изначально, но это грязное решение.

Но... главный вопрос: "почему?" Это не похоже на "естественную" структуру данных - очень мало в реальном мире, что мы можем смоделировать в базе данных, является "естественно рекурсивным", поэтому вполне возможно, что ваш дизайн данных нуждается в хорошем обзоре, чтобы проверить, что нет лучшей структуры, которую вы можете использовать. Единственный раз, когда я видел такие вещи, - это когда люди делают ошибки и предполагают, что таблице "InvoiceLines" нужен внешний ключ обратно к таблице "Invoices" (что они и делают), а таблице "Invoices" также нужен внешний ключ к таблице "Invoice Lines" (чего они не делают-вы получаете эту ссылку через соединение в ваших операторах SELECT).